1*4882a593SmuzhiyunNOTE: 2*4882a593SmuzhiyunThis is a version of Documentation/process/submit-checklist.rst into Japanese. 3*4882a593SmuzhiyunThis document is maintained by Takenori Nagano <t-nagano@ah.jp.nec.com> 4*4882a593Smuzhiyunand the JF Project team <http://www.linux.or.jp/JF/>. 5*4882a593SmuzhiyunIf you find any difference between this document and the original file 6*4882a593Smuzhiyunor a problem with the translation, 7*4882a593Smuzhiyunplease contact the maintainer of this file or JF project. 8*4882a593Smuzhiyun 9*4882a593SmuzhiyunPlease also note that the purpose of this file is to be easier to read 10*4882a593Smuzhiyunfor non English (read: Japanese) speakers and is not intended as a 11*4882a593Smuzhiyunfork. So if you have any comments or updates of this file, please try 12*4882a593Smuzhiyunto update the original English file first. 13*4882a593Smuzhiyun 14*4882a593SmuzhiyunLast Updated: 2008/07/14 15*4882a593Smuzhiyun================================== 16*4882a593Smuzhiyunこれは、 17*4882a593Smuzhiyunlinux-2.6.26/Documentation/process/submit-checklist.rst の和訳です。 18*4882a593Smuzhiyun 19*4882a593Smuzhiyun翻訳団体: JF プロジェクト < http://www.linux.or.jp/JF/ > 20*4882a593Smuzhiyun翻訳日: 2008/07/14 21*4882a593Smuzhiyun翻訳者: Takenori Nagano <t-nagano at ah dot jp dot nec dot com> 22*4882a593Smuzhiyun校正者: Masanori Kobayashi さん <zap03216 at nifty dot ne dot jp> 23*4882a593Smuzhiyun================================== 24*4882a593Smuzhiyun 25*4882a593Smuzhiyun 26*4882a593SmuzhiyunLinux カーネルパッチ投稿者向けチェックリスト 27*4882a593Smuzhiyun~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 28*4882a593Smuzhiyun 29*4882a593Smuzhiyun本書では、パッチをより素早く取り込んでもらいたい開発者が実践すべき基本的な事柄 30*4882a593Smuzhiyunをいくつか紹介します。ここにある全ての事柄は、Documentation/process/submitting-patches.rst 31*4882a593SmuzhiyunなどのLinuxカーネルパッチ投稿に際しての心得を補足するものです。 32*4882a593Smuzhiyun 33*4882a593Smuzhiyun 1: 妥当なCONFIGオプションや変更されたCONFIGオプション、つまり =y, =m, =n 34*4882a593Smuzhiyun 全てで正しくビルドできることを確認してください。その際、gcc及びリンカが 35*4882a593Smuzhiyun warningやerrorを出していないことも確認してください。 36*4882a593Smuzhiyun 37*4882a593Smuzhiyun 2: allnoconfig, allmodconfig オプションを用いて正しくビルドできることを 38*4882a593Smuzhiyun 確認してください。 39*4882a593Smuzhiyun 40*4882a593Smuzhiyun 3: 手許のクロスコンパイルツールやOSDLのPLMのようなものを用いて、複数の 41*4882a593Smuzhiyun アーキテクチャにおいても正しくビルドできることを確認してください。 42*4882a593Smuzhiyun 43*4882a593Smuzhiyun 4: 64bit長の'unsigned long'を使用しているppc64は、クロスコンパイルでの 44*4882a593Smuzhiyun チェックに適当なアーキテクチャです。 45*4882a593Smuzhiyun 46*4882a593Smuzhiyun 5: カーネルコーディングスタイルに準拠しているかどうか確認してください(!) 47*4882a593Smuzhiyun 48*4882a593Smuzhiyun 6: CONFIGオプションの追加・変更をした場合には、CONFIGメニューが壊れていない 49*4882a593Smuzhiyun ことを確認してください。 50*4882a593Smuzhiyun 51*4882a593Smuzhiyun 7: 新しくKconfigのオプションを追加する際には、必ずそのhelpも記述してください。 52*4882a593Smuzhiyun 53*4882a593Smuzhiyun 8: 適切なKconfigの依存関係を考えながら慎重にチェックしてください。 54*4882a593Smuzhiyun ただし、この作業はマシンを使ったテストできちんと行うのがとても困難です。 55*4882a593Smuzhiyun うまくやるには、自分の頭で考えることです。 56*4882a593Smuzhiyun 57*4882a593Smuzhiyun 9: sparseを利用してちゃんとしたコードチェックをしてください。 58*4882a593Smuzhiyun 59*4882a593Smuzhiyun10: 'make checkstack' と 'make namespacecheck' を利用し、問題が発見されたら 60*4882a593Smuzhiyun 修正してください。'make checkstack' は明示的に問題を示しませんが、どれか 61*4882a593Smuzhiyun 1つの関数が512バイトより大きいスタックを使っていれば、修正すべき候補と 62*4882a593Smuzhiyun なります。 63*4882a593Smuzhiyun 64*4882a593Smuzhiyun11: グローバルなkernel API を説明する kernel-doc をソースの中に含めてください。 65*4882a593Smuzhiyun ( staticな関数においては必須ではありませんが、含めてもらっても結構です ) 66*4882a593Smuzhiyun そして、'make htmldocs' もしくは 'make mandocs' を利用して追記した 67*4882a593Smuzhiyun ドキュメントのチェックを行い、問題が見つかった場合には修正を行ってください。 68*4882a593Smuzhiyun 69*4882a593Smuzhiyun12: CONFIG_PREEMPT, CONFIG_DEBUG_PREEMPT, CONFIG_DEBUG_SLAB, 70*4882a593Smuzhiyun CONFIG_DEBUG_PAGEALLOC, CONFIG_DEBUG_MUTEXES, CONFIG_DEBUG_SPINLOCK, 71*4882a593Smuzhiyun CONFIG_DEBUG_ATOMIC_SLEEP これら全てを同時に有効にして動作確認を 72*4882a593Smuzhiyun 行ってください。 73*4882a593Smuzhiyun 74*4882a593Smuzhiyun13: CONFIG_SMP, CONFIG_PREEMPT を有効にした場合と無効にした場合の両方で 75*4882a593Smuzhiyun ビルドした上、動作確認を行ってください。 76*4882a593Smuzhiyun 77*4882a593Smuzhiyun14: lockdepの機能を全て有効にした上で、全てのコードパスを評価してください。 78*4882a593Smuzhiyun 79*4882a593Smuzhiyun15: /proc に新しいエントリを追加した場合には、Documentation/ 配下に 80*4882a593Smuzhiyun 必ずドキュメントを追加してください。 81*4882a593Smuzhiyun 82*4882a593Smuzhiyun16: 新しいブートパラメータを追加した場合には、 83*4882a593Smuzhiyun 必ずDocumentation/admin-guide/kernel-parameters.rst に説明を追加してください。 84*4882a593Smuzhiyun 85*4882a593Smuzhiyun17: 新しくmoduleにパラメータを追加した場合には、MODULE_PARM_DESC()を 86*4882a593Smuzhiyun 利用して必ずその説明を記述してください。 87*4882a593Smuzhiyun 88*4882a593Smuzhiyun18: 新しいuserspaceインタフェースを作成した場合には、Documentation/ABI/ に 89*4882a593Smuzhiyun Documentation/ABI/README を参考にして必ずドキュメントを追加してください。 90*4882a593Smuzhiyun 91*4882a593Smuzhiyun19: 'make headers_check'を実行して全く問題がないことを確認してください。 92*4882a593Smuzhiyun 93*4882a593Smuzhiyun20: 少なくともslabアロケーションとpageアロケーションに失敗した場合の 94*4882a593Smuzhiyun 挙動について、fault-injectionを利用して確認してください。 95*4882a593Smuzhiyun Documentation/fault-injection/ を参照してください。 96*4882a593Smuzhiyun 97*4882a593Smuzhiyun 追加したコードがかなりの量であったならば、サブシステム特有の 98*4882a593Smuzhiyun fault-injectionを追加したほうが良いかもしれません。 99*4882a593Smuzhiyun 100*4882a593Smuzhiyun21: 新たに追加したコードは、`gcc -W'でコンパイルしてください。 101*4882a593Smuzhiyun このオプションは大量の不要なメッセージを出力しますが、 102*4882a593Smuzhiyun "warning: comparison between signed and unsigned" のようなメッセージは、 103*4882a593Smuzhiyun バグを見つけるのに役に立ちます。 104*4882a593Smuzhiyun 105*4882a593Smuzhiyun22: 投稿したパッチが -mm パッチセットにマージされた後、全ての既存のパッチや 106*4882a593Smuzhiyun VM, VFS およびその他のサブシステムに関する様々な変更と、現時点でも共存 107*4882a593Smuzhiyun できることを確認するテストを行ってください。 108