0001 NOTE:
0002 This is a version of Documentation/process/submit-checklist.rst into Japanese.
0003 This document is maintained by Takenori Nagano <t-nagano@ah.jp.nec.com>
0004 and the JF Project team <http://www.linux.or.jp/JF/>.
0005 If you find any difference between this document and the original file
0006 or a problem with the translation,
0007 please contact the maintainer of this file or JF project.
0008
0009 Please also note that the purpose of this file is to be easier to read
0010 for non English (read: Japanese) speakers and is not intended as a
0011 fork. So if you have any comments or updates of this file, please try
0012 to update the original English file first.
0013
0014 Last Updated: 2008/07/14
0015 ==================================
0016 これは、
0017 linux-2.6.26/Documentation/process/submit-checklist.rst の和訳です。
0018
0019 翻訳団体: JF プロジェクト < http://www.linux.or.jp/JF/ >
0020 翻訳日: 2008/07/14
0021 翻訳者: Takenori Nagano <t-nagano at ah dot jp dot nec dot com>
0022 校正者: Masanori Kobayashi さん <zap03216 at nifty dot ne dot jp>
0023 ==================================
0024
0025
0026 Linux カーネルパッチ投稿者向けチェックリスト
0027 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
0028
0029 本書では、パッチをより素早く取り込んでもらいたい開発者が実践すべき基本的な事柄
0030 をいくつか紹介します。ここにある全ての事柄は、Documentation/process/submitting-patches.rst
0031 などのLinuxカーネルパッチ投稿に際しての心得を補足するものです。
0032
0033 1: 妥当なCONFIGオプションや変更されたCONFIGオプション、つまり =y, =m, =n
0034 全てで正しくビルドできることを確認してください。その際、gcc及びリンカが
0035 warningやerrorを出していないことも確認してください。
0036
0037 2: allnoconfig, allmodconfig オプションを用いて正しくビルドできることを
0038 確認してください。
0039
0040 3: 手許のクロスコンパイルツールやOSDLのPLMのようなものを用いて、複数の
0041 アーキテクチャにおいても正しくビルドできることを確認してください。
0042
0043 4: 64bit長の'unsigned long'を使用しているppc64は、クロスコンパイルでの
0044 チェックに適当なアーキテクチャです。
0045
0046 5: カーネルコーディングスタイルに準拠しているかどうか確認してください(!)
0047
0048 6: CONFIGオプションの追加・変更をした場合には、CONFIGメニューが壊れていない
0049 ことを確認してください。
0050
0051 7: 新しくKconfigのオプションを追加する際には、必ずそのhelpも記述してください。
0052
0053 8: 適切なKconfigの依存関係を考えながら慎重にチェックしてください。
0054 ただし、この作業はマシンを使ったテストできちんと行うのがとても困難です。
0055 うまくやるには、自分の頭で考えることです。
0056
0057 9: sparseを利用してちゃんとしたコードチェックをしてください。
0058
0059 10: 'make checkstack' と 'make namespacecheck' を利用し、問題が発見されたら
0060 修正してください。'make checkstack' は明示的に問題を示しませんが、どれか
0061 1つの関数が512バイトより大きいスタックを使っていれば、修正すべき候補と
0062 なります。
0063
0064 11: グローバルなkernel API を説明する kernel-doc をソースの中に含めてください。
0065 ( staticな関数においては必須ではありませんが、含めてもらっても結構です )
0066 そして、'make htmldocs' もしくは 'make mandocs' を利用して追記した
0067 ドキュメントのチェックを行い、問題が見つかった場合には修正を行ってください。
0068
0069 12: CONFIG_PREEMPT, CONFIG_DEBUG_PREEMPT, CONFIG_DEBUG_SLAB,
0070 CONFIG_DEBUG_PAGEALLOC, CONFIG_DEBUG_MUTEXES, CONFIG_DEBUG_SPINLOCK,
0071 CONFIG_DEBUG_ATOMIC_SLEEP これら全てを同時に有効にして動作確認を
0072 行ってください。
0073
0074 13: CONFIG_SMP, CONFIG_PREEMPT を有効にした場合と無効にした場合の両方で
0075 ビルドした上、動作確認を行ってください。
0076
0077 14: lockdepの機能を全て有効にした上で、全てのコードパスを評価してください。
0078
0079 15: /proc に新しいエントリを追加した場合には、Documentation/ 配下に
0080 必ずドキュメントを追加してください。
0081
0082 16: 新しいブートパラメータを追加した場合には、
0083 必ずDocumentation/admin-guide/kernel-parameters.rst に説明を追加してください。
0084
0085 17: 新しくmoduleにパラメータを追加した場合には、MODULE_PARM_DESC()を
0086 利用して必ずその説明を記述してください。
0087
0088 18: 新しいuserspaceインタフェースを作成した場合には、Documentation/ABI/ に
0089 Documentation/ABI/README を参考にして必ずドキュメントを追加してください。
0090
0091 19: 少なくともslabアロケーションとpageアロケーションに失敗した場合の
0092 挙動について、fault-injectionを利用して確認してください。
0093 Documentation/fault-injection/ を参照してください。
0094
0095 追加したコードがかなりの量であったならば、サブシステム特有の
0096 fault-injectionを追加したほうが良いかもしれません。
0097
0098 20: 新たに追加したコードは、`gcc -W'でコンパイルしてください。
0099 このオプションは大量の不要なメッセージを出力しますが、
0100 "warning: comparison between signed and unsigned" のようなメッセージは、
0101 バグを見つけるのに役に立ちます。
0102
0103 21: 投稿したパッチが -mm パッチセットにマージされた後、全ての既存のパッチや
0104 VM, VFS およびその他のサブシステムに関する様々な変更と、現時点でも共存
0105 できることを確認するテストを行ってください。