⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 submittingpatches

📁 linux 内核源代码
💻
📖 第 1 页 / 共 3 页
字号:
NOTE:This is a version of Documentation/SubmittingPatches into Japanese.This document is maintained by Keiichi KII <k-keiichi@bx.jp.nec.com>and the JF Project team <http://www.linux.or.jp/JF/>.If you find any difference between this document and the original fileor a problem with the translation,please contact the maintainer of this file or JF project.Please also note that the purpose of this file is to be easier to readfor non English (read: Japanese) speakers and is not intended as afork. So if you have any comments or updates of this file, please tryto update the original English file first.Last Updated: 2007/10/24==================================これは、linux-2.6.23/Documentation/SubmittingPatches の和訳です。翻訳団体: JF プロジェクト < http://www.linux.or.jp/JF/ >翻訳日: 2007/10/17翻訳者: Keiichi Kii <k-keiichi at bx dot jp dot nec dot com>校正者: Masanari Kobayashi さん <zap03216 at nifty dot ne dot jp>         Matsukura さん <nbh--mats at nifty dot com>==================================        Linux カーネルに変更を加えるための Howto        又は        かの Linus Torvalds の取り扱い説明書Linux カーネルに変更を加えたいと思っている個人又は会社にとって、パッチの投稿に関連した仕組みに慣れていなければ、その過程は時々みなさんをおじけづかせることもあります。この文章はあなたの変更を大いに受け入れてもらえやすくする提案を集めたものです。コードを投稿する前に、Documentation/SubmitChecklist の項目リストに目を通してチェックしてください。もしあなたがドライバーを投稿しようとしているなら、Documentation/SubmittingDrivers にも目を通してください。--------------------------------------------セクション1 パッチの作り方と送り方--------------------------------------------1) 「 diff -up 」------------パッチの作成には「 diff -up 」又は「 diff -uprN 」を使ってください。Linux カーネルに対する全ての変更は diff(1) コマンドによるパッチの形式で生成してください。パッチを作成するときには、diff(1) コマンドに「 -u 」引数を指定して、unified 形式のパッチを作成することを確認してください。また、変更がどの C 関数で行われたのかを表示する「 -p 」引数を使ってください。この引数は生成した差分をずっと読みやすくしてくれます。パッチは Linuxカーネルソースの中のサブディレクトリではなく Linux カーネルソースのルートディレクトリを基準にしないといけません。1個のファイルについてのパッチを作成するためには、ほとんどの場合、以下の作業を行えば十分です。	SRCTREE= linux-2.6	MYFILE=  drivers/net/mydriver.c	cd $SRCTREE	cp $MYFILE $MYFILE.orig	vi $MYFILE	# make your change	cd ..	diff -up $SRCTREE/$MYFILE{.orig,} > /tmp/patch複数のファイルについてのパッチを作成するためには、素の( vanilla )、すなわち変更を加えてない Linux カーネルを展開し、自分の Linux カーネルソースとの差分を生成しないといけません。例えば、	MYSRC= /devel/linux-2.6	tar xvfz linux-2.6.12.tar.gz	mv linux-2.6.12 linux-2.6.12-vanilla	diff -uprN -X linux-2.6.12-vanilla/Documentation/dontdiff \		linux-2.6.12-vanilla $MYSRC > /tmp/patchdontdiff ファイルには Linux カーネルのビルドプロセスの過程で生成されたファイルの一覧がのっています。そして、それらはパッチを生成する diff(1)コマンドで無視されるべきです。dontdiff ファイルは 2.6.12 以後のバージョンの Linux カーネルソースツリーに含まれています。それより前のバージョンの Linux カーネルソースツリーに対する dontdiff ファイルは、<http://www.xenotime.net/linux/doc/dontdiff>から取得することができます。投稿するパッチの中に関係のない余分なファイルが含まれていないことを確認してください。diff(1) コマンドで生成したパッチがあなたの意図したとおりのものであることを確認してください。もしあなたのパッチが多くの差分を生み出すのであれば、あなたはパッチを意味のあるひとまとまりごとに分けたいと思うかもしれません。これは他のカーネル開発者にとってレビューしやすくなるので、あなたのパッチを受け入れてもらうためにはとても重要なことです。これを補助できる多くのスクリプトがあります。Quilt:http://savannah.nongnu.org/projects/quiltAndrew Morton's patch scripts:http://www.zip.com.au/~akpm/linux/patches/このリンクの先のスクリプトの代わりとして、quilt がパッチマネジメントツールとして推奨されています(上のリンクを見てください)。2) パッチに対する説明パッチの中の変更点に対する技術的な詳細について説明してください。説明はできる限り具体的に。もっとも悪い説明は「ドライバー X を更新」、「ドライバー X に対するバグフィックス」あるいは「このパッチはサブシステム X に対する更新を含んでいます。どうか取り入れてください。」などです。説明が長くなりだしたのであれば、おそらくそれはパッチを分ける必要があるという兆候です。次の #3 を見てください。3) パッチの分割意味のあるひとまとまりごとに変更を個々のパッチファイルに分けてください。例えば、もし1つのドライバーに対するバグフィックスとパフォーマンス強化の両方の変更を含んでいるのであれば、その変更を2つ以上のパッチに分けてください。もし変更箇所に API の更新と、その新しい API を使う新たなドライバーが含まれているなら、2つのパッチに分けてください。一方で、もしあなたが多数のファイルに対して意味的に同じ1つの変更を加えるのであれば、その変更を1つのパッチにまとめてください。言いかえると、意味的に同じ1つの変更は1つのパッチの中に含まれます。あるパッチが変更を完結させるために他のパッチに依存していたとしても、それは問題ありません。パッチの説明の中で「このパッチはパッチ X に依存している」と簡単に注意書きをつけてください。もしパッチをより小さなパッチの集合に凝縮することができないなら、まずは15かそこらのパッチを送り、そのレビューと統合を待って下さい。4) パッチのスタイルチェックあなたのパッチが基本的な( Linux カーネルの)コーディングスタイルに違反していないかをチェックして下さい。その詳細を Documentation/CodingStyle で見つけることができます。コーディングスタイルの違反はレビューする人の時間を無駄にするだけなので、恐らくあなたのパッチは読まれることすらなく拒否されるでしょう。あなたはパッチを投稿する前に最低限パッチスタイルチェッカー( scripts/patchcheck.pl )を利用してパッチをチェックすべきです。もしパッチに違反がのこっているならば、それらの全てについてあなたは正当な理由を示せるようにしておく必要があります。5) 電子メールの宛先の選び方MAINTAINERS ファイルとソースコードに目を通してください。そして、その変更がメンテナのいる特定のサブシステムに加えられるものであることが分かれば、その人に電子メールを送ってください。もし、メンテナが載っていなかったり、メンテナからの応答がないなら、LKML ( linux-kernel@vger.kernel.org )へパッチを送ってください。ほとんどのカーネル開発者はこのメーリングリストに目を通しており、変更に対してコメントを得ることができます。15個より多くのパッチを同時に vger.kernel.org のメーリングリストへ送らないでください!!!Linus Torvalds は Linux カーネルに入る全ての変更に対する最終的な意思決定者です。電子メールアドレスは torvalds@linux-foundation.org になります。彼は多くの電子メールを受け取っているため、できる限り彼に電子メールを送るのは避けるべきです。バグフィックスであったり、自明な変更であったり、話し合いをほとんど必要としないパッチは Linus へ電子メールを送るか CC しなければなりません。話し合いを必要としたり、明確なアドバンテージがないパッチは、通常まずは LKML へ送られるべきです。パッチが議論された後にだけ、そのパッチをLinus へ送るべきです。6) CC (カーボンコピー)先の選び方特に理由がないなら、LKML にも CC してください。Linus 以外のカーネル開発者は変更に気づく必要があり、その結果、彼らはその変更に対してコメントをくれたり、コードに対してレビューや提案をくれるかもしれません。LKML とは Linux カーネル開発者にとって一番中心的なメーリングリストです。USB やフレームバッファデバイスや VFS や SCSI サブシステムなどの特定のサブシステムに関するメーリングリストもあります。あなたの変更に、はっきりと関連のあるメーリングリストについて知りたければMAINTAINERS ファイルを参照してください。VGER.KERNEL.ORG でホスティングされているメーリングリストの一覧が下記のサイトに載っています。

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -