162306a36Sopenharmony_ciNOTE: 262306a36Sopenharmony_ciThis is a version of Documentation/process/submit-checklist.rst into Japanese. 362306a36Sopenharmony_ciThis document is maintained by Takenori Nagano <t-nagano@ah.jp.nec.com> 462306a36Sopenharmony_ciand the JF Project team <http://www.linux.or.jp/JF/>. 562306a36Sopenharmony_ciIf you find any difference between this document and the original file 662306a36Sopenharmony_cior a problem with the translation, 762306a36Sopenharmony_ciplease contact the maintainer of this file or JF project. 862306a36Sopenharmony_ci 962306a36Sopenharmony_ciPlease also note that the purpose of this file is to be easier to read 1062306a36Sopenharmony_cifor non English (read: Japanese) speakers and is not intended as a 1162306a36Sopenharmony_cifork. So if you have any comments or updates of this file, please try 1262306a36Sopenharmony_cito update the original English file first. 1362306a36Sopenharmony_ci 1462306a36Sopenharmony_ciLast Updated: 2008/07/14 1562306a36Sopenharmony_ci================================== 1662306a36Sopenharmony_ciこれは、 1762306a36Sopenharmony_cilinux-2.6.26/Documentation/process/submit-checklist.rst の和訳です。 1862306a36Sopenharmony_ci 1962306a36Sopenharmony_ci翻訳団体: JF プロジェクト < http://www.linux.or.jp/JF/ > 2062306a36Sopenharmony_ci翻訳日: 2008/07/14 2162306a36Sopenharmony_ci翻訳者: Takenori Nagano <t-nagano at ah dot jp dot nec dot com> 2262306a36Sopenharmony_ci校正者: Masanori Kobayashi さん <zap03216 at nifty dot ne dot jp> 2362306a36Sopenharmony_ci================================== 2462306a36Sopenharmony_ci 2562306a36Sopenharmony_ci 2662306a36Sopenharmony_ciLinux カーネルパッチ投稿者向けチェックリスト 2762306a36Sopenharmony_ci~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 2862306a36Sopenharmony_ci 2962306a36Sopenharmony_ci本書では、パッチをより素早く取り込んでもらいたい開発者が実践すべき基本的な事柄 3062306a36Sopenharmony_ciをいくつか紹介します。ここにある全ての事柄は、Documentation/process/submitting-patches.rst 3162306a36Sopenharmony_ciなどのLinuxカーネルパッチ投稿に際しての心得を補足するものです。 3262306a36Sopenharmony_ci 3362306a36Sopenharmony_ci 1: 妥当なCONFIGオプションや変更されたCONFIGオプション、つまり =y, =m, =n 3462306a36Sopenharmony_ci 全てで正しくビルドできることを確認してください。その際、gcc及びリンカが 3562306a36Sopenharmony_ci warningやerrorを出していないことも確認してください。 3662306a36Sopenharmony_ci 3762306a36Sopenharmony_ci 2: allnoconfig, allmodconfig オプションを用いて正しくビルドできることを 3862306a36Sopenharmony_ci 確認してください。 3962306a36Sopenharmony_ci 4062306a36Sopenharmony_ci 3: 手許のクロスコンパイルツールやOSDLのPLMのようなものを用いて、複数の 4162306a36Sopenharmony_ci アーキテクチャにおいても正しくビルドできることを確認してください。 4262306a36Sopenharmony_ci 4362306a36Sopenharmony_ci 4: 64bit長の'unsigned long'を使用しているppc64は、クロスコンパイルでの 4462306a36Sopenharmony_ci チェックに適当なアーキテクチャです。 4562306a36Sopenharmony_ci 4662306a36Sopenharmony_ci 5: カーネルコーディングスタイルに準拠しているかどうか確認してください(!) 4762306a36Sopenharmony_ci 4862306a36Sopenharmony_ci 6: CONFIGオプションの追加・変更をした場合には、CONFIGメニューが壊れていない 4962306a36Sopenharmony_ci ことを確認してください。 5062306a36Sopenharmony_ci 5162306a36Sopenharmony_ci 7: 新しくKconfigのオプションを追加する際には、必ずそのhelpも記述してください。 5262306a36Sopenharmony_ci 5362306a36Sopenharmony_ci 8: 適切なKconfigの依存関係を考えながら慎重にチェックしてください。 5462306a36Sopenharmony_ci ただし、この作業はマシンを使ったテストできちんと行うのがとても困難です。 5562306a36Sopenharmony_ci うまくやるには、自分の頭で考えることです。 5662306a36Sopenharmony_ci 5762306a36Sopenharmony_ci 9: sparseを利用してちゃんとしたコードチェックをしてください。 5862306a36Sopenharmony_ci 5962306a36Sopenharmony_ci10: 'make checkstack' と 'make namespacecheck' を利用し、問題が発見されたら 6062306a36Sopenharmony_ci 修正してください。'make checkstack' は明示的に問題を示しませんが、どれか 6162306a36Sopenharmony_ci 1つの関数が512バイトより大きいスタックを使っていれば、修正すべき候補と 6262306a36Sopenharmony_ci なります。 6362306a36Sopenharmony_ci 6462306a36Sopenharmony_ci11: グローバルなkernel API を説明する kernel-doc をソースの中に含めてください。 6562306a36Sopenharmony_ci ( staticな関数においては必須ではありませんが、含めてもらっても結構です ) 6662306a36Sopenharmony_ci そして、'make htmldocs' もしくは 'make mandocs' を利用して追記した 6762306a36Sopenharmony_ci ドキュメントのチェックを行い、問題が見つかった場合には修正を行ってください。 6862306a36Sopenharmony_ci 6962306a36Sopenharmony_ci12: CONFIG_PREEMPT, CONFIG_DEBUG_PREEMPT, CONFIG_DEBUG_SLAB, 7062306a36Sopenharmony_ci CONFIG_DEBUG_PAGEALLOC, CONFIG_DEBUG_MUTEXES, CONFIG_DEBUG_SPINLOCK, 7162306a36Sopenharmony_ci CONFIG_DEBUG_ATOMIC_SLEEP これら全てを同時に有効にして動作確認を 7262306a36Sopenharmony_ci 行ってください。 7362306a36Sopenharmony_ci 7462306a36Sopenharmony_ci13: CONFIG_SMP, CONFIG_PREEMPT を有効にした場合と無効にした場合の両方で 7562306a36Sopenharmony_ci ビルドした上、動作確認を行ってください。 7662306a36Sopenharmony_ci 7762306a36Sopenharmony_ci14: lockdepの機能を全て有効にした上で、全てのコードパスを評価してください。 7862306a36Sopenharmony_ci 7962306a36Sopenharmony_ci15: /proc に新しいエントリを追加した場合には、Documentation/ 配下に 8062306a36Sopenharmony_ci 必ずドキュメントを追加してください。 8162306a36Sopenharmony_ci 8262306a36Sopenharmony_ci16: 新しいブートパラメータを追加した場合には、 8362306a36Sopenharmony_ci 必ずDocumentation/admin-guide/kernel-parameters.rst に説明を追加してください。 8462306a36Sopenharmony_ci 8562306a36Sopenharmony_ci17: 新しくmoduleにパラメータを追加した場合には、MODULE_PARM_DESC()を 8662306a36Sopenharmony_ci 利用して必ずその説明を記述してください。 8762306a36Sopenharmony_ci 8862306a36Sopenharmony_ci18: 新しいuserspaceインタフェースを作成した場合には、Documentation/ABI/ に 8962306a36Sopenharmony_ci Documentation/ABI/README を参考にして必ずドキュメントを追加してください。 9062306a36Sopenharmony_ci 9162306a36Sopenharmony_ci19: 少なくともslabアロケーションとpageアロケーションに失敗した場合の 9262306a36Sopenharmony_ci 挙動について、fault-injectionを利用して確認してください。 9362306a36Sopenharmony_ci Documentation/fault-injection/ を参照してください。 9462306a36Sopenharmony_ci 9562306a36Sopenharmony_ci 追加したコードがかなりの量であったならば、サブシステム特有の 9662306a36Sopenharmony_ci fault-injectionを追加したほうが良いかもしれません。 9762306a36Sopenharmony_ci 9862306a36Sopenharmony_ci20: 新たに追加したコードは、`gcc -W'でコンパイルしてください。 9962306a36Sopenharmony_ci このオプションは大量の不要なメッセージを出力しますが、 10062306a36Sopenharmony_ci "warning: comparison between signed and unsigned" のようなメッセージは、 10162306a36Sopenharmony_ci バグを見つけるのに役に立ちます。 10262306a36Sopenharmony_ci 10362306a36Sopenharmony_ci21: 投稿したパッチが -mm パッチセットにマージされた後、全ての既存のパッチや 10462306a36Sopenharmony_ci VM, VFS およびその他のサブシステムに関する様々な変更と、現時点でも共存 10562306a36Sopenharmony_ci できることを確認するテストを行ってください。 106