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