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 file or 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 read for non English (read: Japanese) speakers and is not intended as a fork. So if you have any comments or updates of this file, please try to 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/patch dontdiff ファイルã«ã¯ 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/quilt Andrew 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 ã§ãƒ›ã‚¹ãƒ†ã‚£ãƒ³ã‚°ã•ã‚Œã¦ã„るメーリングリストã®ä¸€è¦§ãŒä¸‹è¨˜ã® サイトã«è¼‰ã£ã¦ã„ã¾ã™ã€‚ <http://vger.kernel.org/vger-lists.html> ã‚‚ã—ã€å¤‰æ›´ãŒãƒ¦ãƒ¼ã‚¶ãƒ©ãƒ³ãƒ‰ã®ã‚«ãƒ¼ãƒãƒ«ã‚¤ãƒ³ã‚¿ãƒ•ã‚§ãƒ¼ã‚¹ã«å½±éŸ¿ã‚’与㈠るã®ã§ã‚ã‚Œã°ã€MAN-PAGES ã®ãƒ¡ãƒ³ãƒ†ãƒŠ( MAINTAINERS ファイルã«ä¸€è¦§ ãŒã‚ã‚Šã¾ã™)ã« man ページã®ãƒ‘ッãƒã‚’é€ã£ã¦ãã ã•ã„。少ãªãã¨ã‚‚ æƒ…å ±ãŒãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãƒšãƒ¼ã‚¸ã®ä¸ã«å…¥ã£ã¦ãるよã†ã«ã€å¤‰æ›´ãŒèµ·ããŸã¨ã„ㆠ通知をé€ã£ã¦ãã ã•ã„。 ãŸã¨ãˆã€ãƒ¡ãƒ³ãƒ†ãƒŠãŒ #4 ã§åå¿œãŒãªã‹ã£ãŸã¨ã—ã¦ã‚‚ã€ãƒ¡ãƒ³ãƒ†ãƒŠã®ã‚³ãƒ¼ãƒ‰ã«å¤‰æ›´ã‚’ åŠ ãˆãŸã¨ãã«ã¯ã€ã„ã¤ã‚‚メンテナ㫠CC ã™ã‚‹ã®ã‚’忘れãªã„よã†ã«ã—ã¦ãã ã•ã„。 å°ã•ãªãƒ‘ッãƒã§ã‚ã‚Œã°ã€Adrian Bunk ãŒç®¡ç†ã—ã¦ã„ã‚‹ Trivial Patch Monkey (ã¡ã‚‡ã£ã¨ã—ãŸãƒ‘ッãƒã‚’集ã‚ã¦ã„ã‚‹)<trivial@kernel.org>ã« CC ã—ã¦ã‚‚ã„ã„ ã§ã™ã€‚ã¡ã‚‡ã£ã¨ã—ãŸãƒ‘ッãƒã¨ã¯ä»¥ä¸‹ã®ãƒ«ãƒ¼ãƒ«ã®ã©ã‚Œã‹1ã¤ã‚’満ãŸã—ã¦ã„ãªã‘ ã‚Œã°ãªã‚Šã¾ã›ã‚“。 ・ドã‚ュメントã®ã‚¹ãƒšãƒ«ãƒŸã‚¹ã®ä¿®æ£ ・grep(1) コマンドã«ã‚ˆã‚‹æ¤œç´¢ã‚’困難ã«ã—ã¦ã„るスペルã®ä¿®æ£ ・コンパイル時ã®è¦å‘Šã®ä¿®æ£(無駄ãªè¦å‘ŠãŒæ•£ä¹±ã™ã‚‹ã“ã¨ã¯å¥½ã¾ã—ããªã„㟠ã‚ã§ã™) ・コンパイルå•é¡Œã®ä¿®æ£(ãれらã®ä¿®æ£ãŒæœ¬å½“ã«æ£ã—ã„å ´åˆã«é™ã‚‹) ・実行時ã®å•é¡Œã®ä¿®æ£(ãれらã®ä¿®æ£ãŒæœ¬å½“ã«å•é¡Œã‚’ä¿®æ£ã—ã¦ã„ã‚‹å ´åˆã«é™ã‚‹) ・廃æ¢äºˆå®šã®é–¢æ•°ã‚„マクãƒã‚’使用ã—ã¦ã„るコードã®é™¤åŽ»(例 check_region ) ・å•ã„åˆã‚ã›å…ˆã‚„ドã‚ュメントã®ä¿®æ£ ・移æ¤æ€§ã®ãªã„コードã‹ã‚‰ç§»æ¤æ€§ã®ã‚るコードã¸ã®ç½®ãæ›ãˆ(å°ã•ã„範囲㧠ã‚ã‚Œã°ã‚¢ãƒ¼ã‚テクãƒãƒ£ç‰¹æœ‰ã®ã“ã¨ã§ã‚‚ä»–ã®äººãŒã‚³ãƒ”ーã§ãã¾ã™) ・作者やメンテナã«ã‚ˆã‚‹ä¿®æ£(ã™ãªã‚ã¡ patch monkey ã®å†è»¢é€ãƒ¢ãƒ¼ãƒ‰) URL: <http://www.kernel.org/pub/linux/kernel/people/bunk/trivial/> 7) MIME やリンクや圧縮ファイルや添付ファイルã§ã¯ãªãプレインテã‚ストã®ã¿ Linus ã‚„ä»–ã®ã‚«ãƒ¼ãƒãƒ«é–‹ç™ºè€…ã¯ã‚ãªãŸãŒæŠ•ç¨¿ã—ãŸå¤‰æ›´ã‚’èªã‚“ã§ã€ã‚³ãƒ¡ãƒ³ãƒˆã§ã ã‚‹å¿…è¦ãŒã‚ã‚Šã¾ã™ã€‚カーãƒãƒ«é–‹ç™ºè€…ã«ã¨ã£ã¦ã€ã‚ãªãŸãŒæ›¸ã„ãŸã‚³ãƒ¼ãƒ‰ã®ç‰¹å®šã® 部分ã«ã‚³ãƒ¡ãƒ³ãƒˆã‚’ã™ã‚‹ãŸã‚ã«ã€æ¨™æº–çš„ãªé›»åメールクライアントã§å¤‰æ›´ãŒå¼•ç”¨ ã§ãã‚‹ã“ã¨ã¯é‡è¦ã§ã™ã€‚ 上記ã®ç†ç”±ã§ã€ã™ã¹ã¦ã®ãƒ‘ッãƒã¯æ–‡ä¸ã«å«ã‚ã‚‹å½¢å¼ã®é›»åメールã§æŠ•ç¨¿ã• れるã¹ãã§ã™ã€‚è¦å‘Šï¼šã‚ãªãŸãŒãƒ‘ッãƒã‚’コピー&ペーストã™ã‚‹éš›ã«ã¯ã€ãƒ‘ッ ãƒã‚’改悪ã™ã‚‹ã‚¨ãƒ‡ã‚£ã‚¿ãƒ¼ã®æŠ˜ã‚Šè¿”ã—機能ã«æ³¨æ„ã—ã¦ãã ã•ã„。 パッãƒã‚’圧縮ã®æœ‰ç„¡ã«é–¢ã‚ら㚠MIME å½¢å¼ã§æ·»ä»˜ã—ãªã„ã§ãã ã•ã„。多ãã®ãƒ ピュラーãªé›»åメールクライアント㯠MIME å½¢å¼ã®æ·»ä»˜ãƒ•ã‚¡ã‚¤ãƒ«ã‚’プレーンテ ã‚ストã¨ã—ã¦é€ä¿¡ã™ã‚‹ã¨ã¯é™ã‚‰ãªã„ã§ã—ょã†ã€‚ãã†ãªã‚‹ã¨ã€é›»åメールクラ イアントãŒã‚³ãƒ¼ãƒ‰ã«å¯¾ã™ã‚‹ã‚³ãƒ¡ãƒ³ãƒˆã‚’付ã‘ã‚‹ã“ã¨ã‚’ã§ããªãã—ã¾ã™ã€‚ã¾ãŸã€ MIME å½¢å¼ã®æ·»ä»˜ãƒ•ã‚¡ã‚¤ãƒ«ã¯ Linus ã«æ‰‹é–“ã‚’å–らã›ã‚‹ã“ã¨ã«ãªã‚Šã€ãã®å¤‰æ›´ã‚’ å—ã‘入れã¦ã‚‚らã†å¯èƒ½æ€§ãŒä½Žããªã£ã¦ã—ã¾ã„ã¾ã™ã€‚ 例外:ãŠä½¿ã„ã®é›»åメールクライアントãŒãƒ‘ッãƒã‚’ã‚ã¡ã‚ƒãã¡ã‚ƒã«ã™ã‚‹ã®ã§ ã‚ã‚Œã°ã€èª°ã‹ãŒ MIME å½¢å¼ã®ãƒ‘ッãƒã‚’å†é€ã™ã‚‹ã‚ˆã†æ±‚ã‚ã‚‹ã‹ã‚‚ã—ã‚Œã¾ã›ã‚“。 è¦å‘Šï¼š Mozilla ã®ã‚ˆã†ãªç‰¹å®šã®é›»åメールクライアントã¯é›»åメール㮠ヘッダã«ä»¥ä¸‹ã®ã‚‚ã®ã‚’ä»˜åŠ ã—ã¦é€ã‚Šã¾ã™ã€‚ ---- message header ---- Content-Type: text/plain; charset=us-ascii; format=flowed ---- message header ---- å•é¡Œã¯ã€ã€Œ format=flowed ã€ãŒä»˜ã„ãŸé›»åメールを特定ã®å—ä¿¡å´ã®é›»åメール クライアントãŒã‚¿ãƒ–をスペースã«ç½®ãæ›ãˆã‚‹ã¨ã„ã†ã‚ˆã†ãªå¤‰æ›´ã‚’ã™ã‚‹ã“ã¨ã§ã™ã€‚ ã—ãŸãŒã£ã¦é€ã‚‰ã‚Œã¦ããŸãƒ‘ッãƒã¯å£Šã‚Œã¦ã„るよã†ã«è¦‹ãˆã‚‹ã§ã—ょã†ã€‚ ã“れを修æ£ã™ã‚‹ã«ã¯ã€mozilla ã® defaults/pref/mailnews.js ファイルを 以下ã®ã‚ˆã†ã«ä¿®æ£ã—ã¾ã™ã€‚ pref("mailnews.send_plaintext_flowed", false); // RFC 2646======= pref("mailnews.display.disable_format_flowed_support", true); 8) é›»åメールã®ã‚µã‚¤ã‚º パッãƒã‚’ Linus ã¸é€ã‚‹ã¨ãã¯å¸¸ã« #7 ã®æ‰‹é †ã«å¾“ã£ã¦ãã ã•ã„。 大ããªãƒ‘ッãƒã¯ãƒ¡ãƒ¼ãƒªãƒ³ã‚°ãƒªã‚¹ãƒˆã‚„メンテナã«ã¨ã£ã¦ä¸è¦ªåˆ‡ã§ã™ã€‚パッãƒãŒ 未圧縮㧠40KB を超ãˆã‚‹ã‚ˆã†ã§ã‚ã‚‹ãªã‚‰ã€ã‚¤ãƒ³ã‚¿ãƒ¼ãƒãƒƒãƒˆä¸Šã®ã‚¢ã‚¯ã‚»ã‚¹å¯èƒ½ãª サーãƒã«ä¿å˜ã—ã€ä¿å˜å ´æ‰€ã‚’示㙠URL ã‚’ä¼ãˆã‚‹ã»ã†ãŒé©åˆ‡ã§ã™ã€‚ 9) カーãƒãƒ«ãƒãƒ¼ã‚¸ãƒ§ãƒ³ã®æ˜Žè¨˜ パッãƒãŒå¯¾è±¡ã¨ã™ã‚‹ã‚«ãƒ¼ãƒãƒ«ã®ãƒãƒ¼ã‚¸ãƒ§ãƒ³ã‚’パッãƒã®æ¦‚è¦ã‹é›»åメール㮠サブジェクトã«ä»˜ã‘ã‚‹ã“ã¨ãŒé‡è¦ã§ã™ã€‚ パッãƒãŒæœ€æ–°ãƒãƒ¼ã‚¸ãƒ§ãƒ³ã®ã‚«ãƒ¼ãƒãƒ«ã«æ£ã—ãé©ç”¨ã§ããªã‘ã‚Œã°ã€Linus 㯠ãã®ãƒ‘ッãƒã‚’採用ã—ãªã„ã§ã—ょã†ã€‚ 10) ãŒã£ã‹ã‚Šã›ãšå†æŠ•ç¨¿ パッãƒã‚’投稿ã—ãŸå¾Œã¯ã€è¾›æŠ±å¼·ãå¾…ã£ã¦ã„ã¦ãã ã•ã„。Linus ãŒã‚ãªãŸã®ãƒ‘ッ ãƒã‚’æ°—ã«å…¥ã£ã¦æŽ¡ç”¨ã™ã‚Œã°ã€Linus ãŒãƒªãƒªãƒ¼ã‚¹ã™ã‚‹æ¬¡ã®ãƒãƒ¼ã‚¸ãƒ§ãƒ³ã®ã‚«ãƒ¼ãƒãƒ« ã®ä¸ã§å§¿ã‚’見ã›ã‚‹ã§ã—ょã†ã€‚ ã—ã‹ã—ã€ãƒ‘ッãƒãŒæ¬¡ã®ãƒãƒ¼ã‚¸ãƒ§ãƒ³ã®ã‚«ãƒ¼ãƒãƒ«ã«å…¥ã£ã¦ã„ãªã„ãªã‚‰ã€ã„ãã¤ã‚‚ã® ç†ç”±ãŒã‚ã‚‹ã®ã§ã—ょã†ã€‚ãã®åŽŸå› を絞り込ã¿ã€é–“é•ã£ã¦ã„ã‚‹ã‚‚ã®ã‚’æ£ã—ã€æ›´æ–° ã—ãŸãƒ‘ッãƒã‚’投稿ã™ã‚‹ã®ã¯ã‚ãªãŸã®ä»•äº‹ã§ã™ã€‚ Linus ãŒã‚ãªãŸã®ãƒ‘ッãƒã«å¯¾ã—ã¦ä½•ã®ã‚³ãƒ¡ãƒ³ãƒˆã‚‚ãªãä¸æŽ¡ç”¨ã«ã™ã‚‹ã“ã¨ã¯æ¥µã‚ ã¦æ™®é€šã®ã“ã¨ã§ã™ã€‚ãã‚Œã¯è‡ªç„¶ãªå§¿ã§ã™ã€‚ã‚‚ã—ã€Linus ãŒã‚ãªãŸã®ãƒ‘ッãƒã‚’å— ã‘å–ã£ã¦ã„ãªã„ã®ã§ã‚ã‚Œã°ã€ä»¥ä¸‹ã®ç†ç”±ãŒè€ƒãˆã‚‰ã‚Œã¾ã™ã€‚ * パッãƒãŒæœ€æ–°ãƒãƒ¼ã‚¸ãƒ§ãƒ³ã® Linux カーãƒãƒ«ã«ãã¡ã‚“ã¨é©ç”¨ã§ããªã‹ã£ãŸ * パッãƒãŒ LKML ã§å分ã«è°è«–ã•ã‚Œã¦ã„ãªã‹ã£ãŸ * スタイルã®å•é¡Œ(セクション2ã‚’å‚ç…§) * é›»åメールフォーマットã®å•é¡Œ(ã“ã®ã‚»ã‚¯ã‚·ãƒ§ãƒ³ã‚’å‚ç…§) * パッãƒã«å¯¾ã™ã‚‹æŠ€è¡“çš„ãªå•é¡Œ * Linus ã¯ãŸãã•ã‚“ã®é›»åメールをå—ã‘å–ã£ã¦ã„ã‚‹ã®ã§ã€ã©ã•ãã•ã«ç´›ã‚Œã¦è¦‹ 失ã£ãŸ * ä¸æ„‰å¿«ã«ã•ã›ã¦ã„ã‚‹ 判æ–ã§ããªã„å ´åˆã¯ã€LKML ã«ã‚³ãƒ¡ãƒ³ãƒˆã‚’é ¼ã‚“ã§ãã ã•ã„。 11) サブジェクトã«ã€Œ PATCH 〠Linus ã‚„ LKML ã¸ã®å¤§é‡ã®é›»åメールã®ãŸã‚ã«ã€ã‚µãƒ–ジェクトã®ãƒ—レフィックス㫠「 [PATCH] ã€ã‚’付ã‘ã‚‹ã“ã¨ãŒæ…£ç¿’ã¨ãªã£ã¦ã„ã¾ã™ã€‚ã“ã‚Œã«ã‚ˆã£ã¦ Linus や他㮠カーãƒãƒ«é–‹ç™ºè€…ãŒãƒ‘ッãƒã§ã‚ã‚‹ã®ã‹ã€åˆã¯ã€ä»–ã®è°è«–ã«é–¢ã™ã‚‹é›»åメールã§ã‚ã‚‹ã® ã‹ã‚’より簡å˜ã«è˜åˆ¥ã§ãã¾ã™ã€‚ 12) パッãƒã¸ã®ç½²å 誰ãŒä½•ã‚’ã—ãŸã®ã‹ã‚’追ã„ã‹ã‘ã‚„ã™ãã™ã‚‹ãŸã‚ã« (特ã«ã€ãƒ‘ッãƒãŒä½•äººã‹ã® メンテナを経ã¦æœ€çµ‚çš„ã« Linux カーãƒãƒ«ã«å–ã‚Šè¾¼ã¾ã‚Œã‚‹å ´åˆã®ãŸã‚ã«)ã€é›»å メールã§ã‚„ã‚Šå–ã‚Šã•ã‚Œã‚‹ãƒ‘ッãƒã«å¯¾ã—ã¦ã€Œ sign-off ã€ã¨ã„ã†æ‰‹ç¶šãを導入㗠ã¾ã—ãŸã€‚ 「 sign-off ã€ã¨ã¯ã€ãƒ‘ッãƒãŒã‚ãªãŸã®æ›¸ã„ãŸã‚‚ã®ã§ã‚ã‚‹ã‹ã€ã‚ã‚‹ã„ã¯ã€ ã‚ãªãŸãŒãã®ãƒ‘ッãƒã‚’オープンソースã¨ã—ã¦æä¾›ã™ã‚‹æ¨©åˆ©ã‚’ä¿æŒã—ã¦ã„る〠ã¨ã„ã†è¨¼æ˜Žã‚’パッãƒã®èª¬æ˜Žã®æœ«å°¾ã«ä¸€è¡Œè¨˜è¼‰ã™ã‚‹ã¨ã„ã†ã‚‚ã®ã§ã™ã€‚ ルールã¯ã¨ã¦ã‚‚å˜ç´”ã§ã™ã€‚以下ã®é …目を確èªã—ã¦ä¸‹ã•ã„。 原作者ã®è¨¼æ˜Žæ›¸( DCO ) 1.1 ã“ã®ãƒ—ãƒã‚¸ã‚§ã‚¯ãƒˆã«å¯„与ã™ã‚‹ã‚‚ã®ã¨ã—ã¦ã€ä»¥ä¸‹ã®ã“ã¨ã‚’証明ã™ã‚‹ã€‚ (a) 本寄与ã¯ç§ãŒå…¨ä½“åˆã¯ä¸€éƒ¨ä½œæˆã—ãŸã‚‚ã®ã§ã‚ã‚Šã€ç§ãŒãã®ãƒ•ã‚¡ã‚¤ ルä¸ã«æ˜Žç¤ºã•ã‚ŒãŸã‚ªãƒ¼ãƒ—ンソースライセンスã®ä¸‹ã§å…¬é–‹ã™ã‚‹æ¨©åˆ© ã‚’æŒã£ã¦ã„る。もã—ãã¯ã€ (b) 本寄与ã¯ã€ç§ãŒçŸ¥ã‚‹é™ã‚Šã€é©åˆ‡ãªã‚ªãƒ¼ãƒ—ンソースライセンスã§ã‚«ãƒ ーã•ã‚Œã¦ã„ã‚‹æ—¢å˜ã®ä½œå“ã‚’å…ƒã«ã—ã¦ã„る。åŒæ™‚ã«ã€ç§ã¯ãã®ãƒ©ã‚¤ã‚» ンスã®ä¸‹ã§ã€ç§ãŒå…¨ä½“åˆã¯ä¸€éƒ¨ä½œæˆã—ãŸä¿®æ£ç‰©ã‚’ã€ãƒ•ã‚¡ã‚¤ãƒ«ä¸ã§ç¤º ã•ã‚Œã‚‹åŒä¸€ã®ã‚ªãƒ¼ãƒ—ンソースライセンスã§(ç•°ãªã‚‹ãƒ©ã‚¤ã‚»ãƒ³ã‚¹ã®ä¸‹ã§ 投稿ã™ã‚‹ã“ã¨ãŒè¨±å¯ã•ã‚Œã¦ã„ã‚‹å ´åˆã‚’除ã„ã¦)投稿ã™ã‚‹æ¨©åˆ©ã‚’æŒã£ã¦ ã„る。もã—ãã¯ã€ (c) 本寄与ã¯(a)ã€(b)ã€(c)を証明ã™ã‚‹ç¬¬3者ã‹ã‚‰ç§ã¸ç›´æŽ¥æä¾›ã•ã‚ŒãŸ ã‚‚ã®ã§ã‚ã‚Šã€ç§ã¯ãã‚Œã«å¤‰æ›´ã‚’åŠ ãˆã¦ã„ãªã„。 (d) ç§ã¯ã“ã®ãƒ—ãƒã‚¸ã‚§ã‚¯ãƒˆã¨æœ¬å¯„与ãŒå…¬ã®ã‚‚ã®ã§ã‚ã‚‹ã“ã¨ã«ç†è§£åŠã³åŒæ„㙠る。åŒæ™‚ã«ã€é–¢ä¸Žã—ãŸè¨˜éŒ²(投稿ã®éš›ã®å…¨ã¦ã®å€‹äººæƒ…å ±ã¨ sign-off ã‚’ å«ã‚€)ãŒç„¡æœŸé™ã«ä¿å…¨ã•ã‚Œã‚‹ã“ã¨ã¨ã€å½“該プãƒã‚¸ã‚§ã‚¯ãƒˆåˆã¯é–¢é€£ã™ã‚‹ オープンソースライセンスã«æ²¿ã£ãŸå½¢ã§å†é…布ã•ã‚Œã‚‹ã“ã¨ã«ç†è§£åŠã³ åŒæ„ã™ã‚‹ã€‚ ã‚‚ã—ã“ã‚Œã«åŒæ„ã§ãã‚‹ãªã‚‰ã€ä»¥ä¸‹ã®ã‚ˆã†ãª1è¡Œã‚’è¿½åŠ ã—ã¦ãã ã•ã„。 Signed-off-by: Random J Developer <random@developer.example.org> 実åを使ã£ã¦ãã ã•ã„。(残念ã§ã™ãŒã€å½åや匿åã«ã‚ˆã‚‹å¯„与ã¯ã§ãã¾ã›ã‚“。) 人ã«ã‚ˆã£ã¦ã¯ sign-off ã®è¿‘ãã«è¿½åŠ ã®ã‚¿ã‚°ã‚’ä»˜åŠ ã—ã¦ã„ã¾ã™ã€‚ãれらã¯ä»Šã®ã¨ã“゠無視ã•ã‚Œã¾ã™ãŒã€ã‚ãªãŸã¯ãã®ã‚¿ã‚°ã‚’社内ã®æ‰‹ç¶šãã«åˆ©ç”¨ã—ãŸã‚Šã€sign-off ã«ç‰¹åˆ¥ ãªæƒ…å ±ã‚’ç¤ºã—ãŸã‚Šã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚ 13) ã„㤠Acked-by: を使ã†ã®ã‹ 「 Signed-off-by: ã€ã‚¿ã‚°ã¯ãã®ç½²å者ãŒãƒ‘ッãƒã®é–‹ç™ºã«é–¢ã‚ã£ã¦ã„ãŸã“ã¨ã‚„パッムã®ä¼æ’パスã«ã„ãŸã“ã¨ã‚’示ã—ã¦ã„ã¾ã™ã€‚ ã‚る人ãŒç›´æŽ¥ãƒ‘ッãƒã®æº–備や作æˆã«é–¢ã‚ã£ã¦ã„ãªã„ã‘ã‚Œã©ã€ãã®äººã®ãƒ‘ッãƒã«å¯¾ã™ る承èªã‚’記録ã—ã€ç¤ºã—ãŸã„ã¨ã—ã¾ã™ã€‚ãã®å ´åˆã€ãã®äººã‚’示ã™ã®ã« Acked-by: ãŒä½¿ ãˆã¾ã™ã€‚Acked-by: ã¯ãƒ‘ッãƒã®ãƒã‚§ãƒ³ã‚¸ãƒã‚°ã«ã‚‚è¿½åŠ ã•ã‚Œã¾ã™ã€‚ パッãƒã®å½±éŸ¿ã‚’å—ã‘るコードã®ãƒ¡ãƒ³ãƒ†ãƒŠãŒãƒ‘ッãƒã«é–¢ã‚ã£ã¦ã„ãªã‹ã£ãŸã‚Šã€ãƒ‘ッムã®ä¼æ’パスã«ã„ãªã‹ã£ãŸæ™‚ã«ã‚‚ã€ãƒ¡ãƒ³ãƒ†ãƒŠã¯ Acked-by: ã‚’ã—ã°ã—ã°åˆ©ç”¨ã—ã¾ã™ã€‚ Acked-by: 㯠Signed-off-by: ã®ã‚ˆã†ã«å…¬å¼ãªã‚¿ã‚°ã§ã¯ã‚ã‚Šã¾ã›ã‚“。ãã‚Œã¯ãƒ¡ãƒ³ãƒ†ãƒŠãŒ å°‘ãªãã¨ã‚‚パッãƒã‚’レビューã—ã€åŒæ„を示ã—ã¦ã„ã‚‹ã¨ã„ã†è¨˜éŒ²ã§ã™ã€‚ãã®ã‚ˆã†ãª ã“ã¨ã‹ã‚‰ãƒ‘ッãƒã®çµ±åˆè€…ãŒãƒ¡ãƒ³ãƒ†ãƒŠã®ã€Œã†ã‚“ã€è‰¯ã„ã¨æ€ã†ã‚ˆã€ã¨ã„ã†ç™ºè¨€ã‚’ Acked-by: ã¸ç½®ãæ›ãˆã‚‹ã“ã¨ãŒã‚ã‚Šã¾ã™ã€‚ Acked-by: ãŒå¿…ãšã—もパッãƒå…¨ä½“ã®æ‰¿èªã‚’示ã—ã¦ã„ã‚‹ã‚ã‘ã§ã¯ã‚ã‚Šã¾ã›ã‚“。例ãˆã°ã€ ã‚るパッãƒãŒè¤‡æ•°ã®ã‚µãƒ–システムã¸å½±éŸ¿ã‚’与ãˆã¦ãŠã‚Šã€ãã®ä¸ã®1ã¤ã®ã‚µãƒ–システムã®ãƒ¡ãƒ³ãƒ†ãƒŠã‹ã‚‰ã® Acked-by: ã‚’æŒã£ã¦ã„ã‚‹ã¨ã—ã¾ã™ã€‚ãã®å ´åˆã€Acked-by: ã¯é€šå¸¸ ãã®ãƒ¡ãƒ³ãƒ†ãƒŠã®ã‚³ãƒ¼ãƒ‰ã«å½±éŸ¿ã‚’与ãˆã‚‹ä¸€éƒ¨åˆ†ã ã‘ã«å¯¾ã™ã‚‹æ‰¿èªã‚’示ã—ã¦ã„ã¾ã™ã€‚ ã“ã®ç‚¹ã¯ã€ã”自分ã§åˆ¤æ–ã—ã¦ãã ã•ã„。(ãã® Acked-by: ãŒ)ç–‘ã‚ã—ã„å ´åˆã¯ã€ メーリングリストアーカイブã®ä¸ã®å¤§å…ƒã®è°è«–ã‚’å‚ç…§ã™ã¹ãã§ã™ã€‚ 14) 標準的ãªãƒ‘ッãƒã®ãƒ•ã‚©ãƒ¼ãƒžãƒƒãƒˆ 標準的ãªãƒ‘ッãƒã®ã‚µãƒ–ジェクトã¯ä»¥ä¸‹ã®ã¨ãŠã‚Šã§ã™ã€‚ Subject: [PATCH 001/123] subsystem: summary phrase 標準的ãªãƒ‘ッãƒã®ã€é›»åメールã®ãƒœãƒ‡ã‚£ã¯ä»¥ä¸‹ã®é …目をå«ã‚“ã§ã„ã¾ã™ã€‚ - パッãƒã®ä½œæˆè€…を明記ã™ã‚‹ã€Œ from ã€è¡Œ - 空行 - 説明本体。ã“ã‚Œã¯ã“ã®ãƒ‘ッãƒã‚’説明ã™ã‚‹ãŸã‚ã«ç„¡æœŸé™ã®ãƒã‚§ãƒ³ã‚¸ãƒã‚° (変更履æ´)ã«ã‚³ãƒ”ーã•ã‚Œã¾ã™ã€‚ - 上述ã—ãŸã€Œ Signed-off-by: ã€è¡Œã€‚ã“れも説明本体ã¨åŒã˜ããƒã‚§ãƒ³ ジãƒã‚°å†…ã«ã‚³ãƒ”ーã•ã‚Œã¾ã™ã€‚ - マーカー行ã¯å˜ç´”ã«ã€Œ --- ã€ã§ã™ã€‚ - 余計ãªã‚³ãƒ¡ãƒ³ãƒˆã¯ã€ãƒã‚§ãƒ³ã‚¸ãƒã‚°ã«ã¯ä¸é©åˆ‡ã§ã™ã€‚ - 実際ã®ãƒ‘ッãƒ(差分出力) サブジェクト行ã®ãƒ•ã‚©ãƒ¼ãƒžãƒƒãƒˆã¯ã€ã‚¢ãƒ«ãƒ•ã‚¡ãƒ™ãƒƒãƒˆé †ã§é›»åメールをã¨ã¦ã‚‚ ソートã—ã‚„ã™ã„ã‚‚ã®ã«ãªã£ã¦ã„ã¾ã™ã€‚(ã»ã¨ã‚“ã©ã®é›»åメールクライアント ã¯ã‚½ãƒ¼ãƒˆã‚’サãƒãƒ¼ãƒˆã—ã¦ã„ã¾ã™)パッãƒã®ã‚µãƒ–ジェクトã®é€£ç•ªã¯0è©°ã‚ã§ã‚ ã‚‹ãŸã‚ã€æ•°å—ã§ã®ã‚½ãƒ¼ãƒˆã¨ã‚¢ãƒ«ãƒ•ã‚¡ãƒ™ãƒƒãƒˆã§ã®ã‚½ãƒ¼ãƒˆã¯åŒã˜çµæžœã«ãªã‚Šã¾ã™ã€‚ é›»åメールã®ã‚µãƒ–ジェクト内ã®ã‚µãƒ–システム表記ã¯ã€ãƒ‘ッãƒãŒé©ç”¨ã•ã‚Œã‚‹ 分野ã¾ãŸã¯ã‚µãƒ–システムをè˜åˆ¥ã§ãるよã†ã«ã™ã¹ãã§ã™ã€‚ é›»åメールã®ã‚µãƒ–ジェクトã®ã€Œæ¦‚è¦ã®è¨€ã„回ã—ã€ã¯ãã®ãƒ‘ッãƒã®æ¦‚è¦ã‚’æ£ç¢º ã«è¡¨ç¾ã—ãªã‘ã‚Œã°ãªã‚Šã¾ã›ã‚“。「概è¦ã®è¨€ã„回ã—ã€ã‚’ファイルåã«ã—ã¦ã¯ã„ ã‘ã¾ã›ã‚“。一連ã®ãƒ‘ッãƒä¸ã§ãã‚Œãžã‚Œã®ãƒ‘ッãƒã¯åŒã˜ã€Œæ¦‚è¦ã®è¨€ã„回ã—ã€ã‚’ 使ã£ã¦ã¯ã„ã‘ã¾ã›ã‚“(「一連ã®ãƒ‘ッãƒã€ã¨ã¯é †åºä»˜ã‘られãŸé–¢é€£ã®ã‚る複数㮠パッãƒç¾¤ã§ã™)。 ã‚ãªãŸã®é›»åメールã®ã€Œæ¦‚è¦ã®è¨€ã„回ã—ã€ãŒãã®ãƒ‘ッãƒã«ã¨ã£ã¦ä¸–ç•Œã§å”¯ 一ã®è˜åˆ¥åã«ãªã‚‹ã‚ˆã†ã«å¿ƒãŒã‘ã¦ãã ã•ã„。「概è¦ã®è¨€ã„回ã—ã€ã¯ git ã® ãƒã‚§ãƒ³ã‚¸ãƒã‚°ã®ä¸ã¸ãšã£ã¨ä¼æ’ã—ã¦ã„ãã¾ã™ã€‚「概è¦ã®è¨€ã„回ã—ã€ã¯ã€é–‹ 発者ãŒå¾Œã§ãƒ‘ッãƒã‚’å‚ç…§ã™ã‚‹ãŸã‚ã«è°è«–ã®ä¸ã§åˆ©ç”¨ã™ã‚‹ã‹ã‚‚ã—ã‚Œã¾ã›ã‚“。 人々ã¯ãã®ãƒ‘ッãƒã«é–¢é€£ã—ãŸè°è«–ã‚’èªã‚€ãŸã‚ã«ã€Œæ¦‚è¦ã®è¨€ã„回ã—ã€ã‚’使ã£ã¦ google ã§æ¤œç´¢ã—ãŸãŒã‚‹ã§ã—ょã†ã€‚ サブジェクトã®ä¾‹ã‚’二㤠Subject: [patch 2/5] ext2: improve scalability of bitmap searching Subject: [PATCHv2 001/207] x86: fix eflags tracking 「 from ã€è¡Œã¯é›»åメールã®ãƒœãƒ‡ã‚£ã®ä¸€ç•ªæœ€åˆã®è¡Œã§ãªã‘ã‚Œã°ãªã‚Šã¾ã›ã‚“。 ãã®å½¢å¼ã¯ä»¥ä¸‹ã®ã¨ãŠã‚Šã§ã™ã€‚ From: Original Author <author@example.com> 「 from ã€è¡Œã¯ãƒã‚§ãƒ³ã‚¸ãƒã‚°ã®ä¸ã§ã€ãã®ãƒ‘ッãƒã®ä½œæˆè€…ã¨ã—ã¦ã‚¯ãƒ¬ã‚¸ãƒƒãƒˆã•ã‚Œ ã¦ã„る人を特定ã™ã‚‹ã‚‚ã®ã§ã™ã€‚「 from ã€è¡ŒãŒã‹ã‘ã¦ã„ã‚‹ã¨ã€é›»åメールã®ãƒ˜ãƒƒ ダーã®ã€Œ From: ã€ãŒã€ãƒã‚§ãƒ³ã‚¸ãƒã‚°ã®ä¸ã§ãƒ‘ッãƒã®ä½œæˆè€…を決定ã™ã‚‹ãŸã‚ã«ä½¿ã‚ れるã§ã—ょã†ã€‚ 説明本体ã¯ç„¡æœŸé™ã®ã‚½ãƒ¼ã‚¹ã®ãƒã‚§ãƒ³ã‚¸ãƒã‚°ã«ã‚³ãƒŸãƒƒãƒˆã•ã‚Œã¾ã™ã€‚ãªã®ã§ã€èª¬æ˜Ž 本体ã¯ãã®ãƒ‘ッãƒã«è‡³ã£ãŸè°è«–ã®è©³ç´°ã‚’忘れã¦ã„ã‚‹ã‚る程度ã®æŠ€é‡ã‚’æŒã£ã¦ã„る人 ãŒãã®è©³ç´°ã‚’æ€ã„出ã™ã“ã¨ãŒã§ãã‚‹ã‚‚ã®ã§ãªã‘ã‚Œã°ãªã‚Šã¾ã›ã‚“。 「 --- ã€ãƒžãƒ¼ã‚«ãƒ¼è¡Œã¯ãƒ‘ッãƒå‡¦ç†ãƒ„ールã«å¯¾ã—ã¦ã€ãƒã‚§ãƒ³ã‚¸ãƒã‚°ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ã®çµ‚端 部分をèªè˜ã•ã›ã‚‹ã¨ã„ã†é‡è¦ãªå½¹ç›®ã‚’æžœãŸã—ã¾ã™ã€‚ 「 --- ã€ãƒžãƒ¼ã‚«ãƒ¼è¡Œã®å¾Œã®è¿½åŠ コメントã®è‰¯ã„使用方法ã®1ã¤ã« diffstat コマンド ãŒã‚ã‚Šã¾ã™ã€‚diffstat コマンドã¨ã¯ä½•ã®ãƒ•ã‚¡ã‚¤ãƒ«ãŒå¤‰æ›´ã•ã‚Œã€1ファイル当ãŸã‚Šä½•è¡Œ è¿½åŠ ã•ã‚Œä½•è¡Œæ¶ˆã•ã‚ŒãŸã‹ã‚’示ã™ã‚‚ã®ã§ã™ã€‚diffstat コマンドã¯ç‰¹ã«å¤§ããªãƒ‘ッãƒã« ãŠã„ã¦å½¹ç«‹ã¡ã¾ã™ã€‚ãã®æ™‚点ã§ã ã‘åˆã¯ãƒ¡ãƒ³ãƒ†ãƒŠã«ã¨ã£ã¦ã®ã¿é–¢ä¿‚ã®ã‚るコメント ã¯ç„¡æœŸé™ã«ä¿å˜ã•ã‚Œã‚‹ãƒã‚§ãƒ³ã‚¸ãƒã‚°ã«ã¨ã£ã¦é©åˆ‡ã§ã¯ã‚ã‚Šã¾ã›ã‚“。ãã®ãŸã‚ã€ã“㮠よã†ãªã‚³ãƒ¡ãƒ³ãƒˆã‚‚マーカー行ã®å¾Œã«æ›¸ã‹ã‚Œã‚‹ã¹ãã§ã™ã€‚ファイルåã¯ã‚«ãƒ¼ãƒãƒ«ã‚½ãƒ¼ スツリーã®ãƒˆãƒƒãƒ—ディレクトリã‹ã‚‰ã®è¡¨è¨˜ã§ãƒªã‚¹ãƒˆã•ã‚Œã‚‹ãŸã‚ã€æ¨ªæ–¹å‘ã®ã‚¹ãƒšãƒ¼ã‚¹ ã‚’ã¨ã‚ŠéŽãŽãªã„よã†ã«ã€diffstat コマンドã«ã‚ªãƒ—ション「 -p 1 -w 70 ã€ã‚’指定㗠ã¦ãã ã•ã„(インデントをå«ã‚ã¦ã¡ã‚‡ã†ã©80列ã«åˆã†ã§ã—ょã†)。 é©åˆ‡ãªãƒ‘ッãƒã®ãƒ•ã‚©ãƒ¼ãƒžãƒƒãƒˆã®è©³ç´°ã«ã¤ã„ã¦ã¯ã‚»ã‚¯ã‚·ãƒ§ãƒ³3ã®å‚考文献をå‚ç…§ã—㦠ãã ã•ã„。 ------------------------------------ セクション2 - ヒントã¨TIPSã¨å°æŠ€ ------------------------------------ ã“ã®ã‚»ã‚¯ã‚·ãƒ§ãƒ³ã¯ Linux カーãƒãƒ«ã«å¤‰æ›´ã‚’é©ç”¨ã™ã‚‹ã“ã¨ã«é–¢ä¿‚ã®ã‚る一般的㪠「ãŠç´„æŸã€ã®å¤šãを載ã›ã¦ã„ã¾ã™ã€‚物事ã«ã¯ä¾‹å¤–ã¨ã„ã†ã‚‚ã®ãŒã‚ã‚Šã¾ã™ã€‚ã—ã‹ ã—例外をé©ç”¨ã™ã‚‹ã«ã¯ã€æœ¬å½“ã«å¦¥å½“ãªç†ç”±ãŒä¸å¯æ¬ ã§ã™ã€‚ã‚ãªãŸã¯æらãã“㮠セクションを Linus ã®ã‚³ãƒ³ãƒ”ュータ・サイエンス101ã¨å‘¼ã¶ã§ã—ょã†ã€‚ 1) Documentation/CodingStyleã‚’å‚ç…§ 言ã†ã¾ã§ã‚‚ãªãã€ã‚ãªãŸã®ã‚³ãƒ¼ãƒ‰ãŒã“ã®ã‚³ãƒ¼ãƒ‡ã‚£ãƒ³ã‚°ã‚¹ã‚¿ã‚¤ãƒ«ã‹ã‚‰ã‚ã¾ã‚Šã« も逸脱ã—ã¦ã„ã‚‹ã¨ã€ãƒ¬ãƒ“ューやコメントãªã—ã«å—ã‘å–ã£ã¦ã‚‚らãˆãªã„ã‹ã‚‚ã— ã‚Œã¾ã›ã‚“。 唯一ã®ç‰¹ç†ã™ã¹ã例外ã¯ã€ã‚³ãƒ¼ãƒ‰ã‚’ã‚るファイルã‹ã‚‰åˆ¥ã®ãƒ•ã‚¡ã‚¤ãƒ«ã«ç§»å‹• ã™ã‚‹ã¨ãã§ã™ã€‚ã“ã®å ´åˆã€ã‚³ãƒ¼ãƒ‰ã‚’移動ã™ã‚‹ãƒ‘ッãƒã§ã¯ã€ç§»å‹•ã•ã‚Œã‚‹ã‚³ãƒ¼ãƒ‰ ã«é–¢ã—ã¦ç§»å‹•ä»¥å¤–ã®å¤‰æ›´ã‚’ä¸€åˆ‡åŠ ãˆã‚‹ã¹ãã§ã¯ã‚ã‚Šã¾ã›ã‚“。ã“ã‚Œã«ã‚ˆã‚Šã€ コードã®ç§»å‹•ã¨ã‚ãªãŸãŒè¡Œã£ãŸã‚³ãƒ¼ãƒ‰ã®ä¿®æ£ã‚’明確ã«åŒºåˆ¥ã§ãるよã†ã«ãª ã‚Šã¾ã™ã€‚ã“ã‚Œã¯å®Ÿéš›ã«ä½•ãŒå¤‰æ›´ã•ã‚ŒãŸã‹ã‚’レビューã™ã‚‹éš›ã®å¤§ããªåŠ©ã‘ã« ãªã‚‹ã¨ã¨ã‚‚ã«ã€ãƒ„ールã«ã‚³ãƒ¼ãƒ‰ã®å±¥æ´ã‚’追跡ã•ã›ã‚‹ã“ã¨ã‚‚容易ã«ãªã‚Šã¾ã™ã€‚ 投稿ã™ã‚‹ã‚ˆã‚Šå‰ã«ãƒ‘ッãƒã®ã‚¹ã‚¿ã‚¤ãƒ«ãƒã‚§ãƒƒã‚«ãƒ¼( scripts/checkpatch.pl )㧠ã‚ãªãŸã®ãƒ‘ッãƒã‚’ãƒã‚§ãƒƒã‚¯ã—ã¦ãã ã•ã„。ã“ã®ã‚¹ã‚¿ã‚¤ãƒ«ãƒã‚§ãƒƒã‚«ãƒ¼ã¯æœ€çµ‚çµ è«–ã¨ã—ã¦ã§ã¯ãªãã€æŒ‡æ¨™ã¨ã—ã¦ã¿ã‚‹ã¹ãã§ã™ã€‚ã‚‚ã—ã€ã‚ãªãŸã®ã‚³ãƒ¼ãƒ‰ãŒé•å ã¯ã—ã¦ã„ã‚‹ãŒä¿®æ£ã™ã‚‹ã‚ˆã‚Šè‰¯ã見ãˆã‚‹ã®ã§ã‚ã‚Œã°ã€ãŠãらããã®ã¾ã¾ã«ã™ã‚‹ ã®ãŒãƒ™ã‚¹ãƒˆã§ã™ã€‚ スタイルãƒã‚§ãƒƒã‚«ãƒ¼ã«ã‚ˆã‚‹3段階ã®ãƒ¬ãƒãƒ¼ãƒˆ: - エラー: é–“é•ã£ã¦ã„ã‚‹å¯èƒ½æ€§ãŒé«˜ã„ - è¦å‘Šï¼šæ³¨æ„ã—ã¦ãƒ¬ãƒ“ューã™ã‚‹å¿…è¦ãŒã‚ã‚‹ - ãƒã‚§ãƒƒã‚¯ï¼šè€ƒæ…®ã™ã‚‹å¿…è¦ãŒã‚ã‚‹ ã‚ãªãŸã¯ãƒ‘ッãƒã«æ®‹ã£ã¦ã„ã‚‹å…¨ã¦ã®é•åã«ã¤ã„ã¦ã€ãã‚ŒãŒãªãœå¿…è¦ãªã®ã‹æ£å½“㪠ç†ç”±ã‚’示ã›ã‚‹ã‚ˆã†ã«ã—ã¦ãŠãå¿…è¦ãŒã‚ã‚Šã¾ã™ã€‚ 2) #ifdefã¯è¦‹è‹¦ã—ã„ ifdef ãŒæ•£ä¹±ã—ãŸã‚³ãƒ¼ãƒ‰ã¯ã€èªã‚€ã®ã‚‚メンテナンスã™ã‚‹ã®ã‚‚é¢å€’ã§ã™ã€‚コードã®ä¸ 㧠ifdef を使ã‚ãªã„ã§ãã ã•ã„。代ã‚ã‚Šã«ã€ãƒ˜ãƒƒãƒ€ãƒ•ã‚¡ã‚¤ãƒ«ã®ä¸ã« ifdef を入れã¦ã€ æ¡ä»¶ä»˜ãã§ã€ã‚³ãƒ¼ãƒ‰ã®ä¸ã§ä½¿ã‚れる関数を「 static inline ã€é–¢æ•°ã‹ãƒžã‚¯ãƒã§å®šç¾©ã— ã¦ãã ã•ã„。後ã¯ã‚³ãƒ³ãƒ‘イラãŒã€ä½•ã‚‚ã—ãªã„箇所を最é©åŒ–ã—ã¦å–り去ã£ã¦ãれる㧠ã—ょã†ã€‚ ã¾ãšã„コードã®ç°¡å˜ãªä¾‹ dev = alloc_etherdev (sizeof(struct funky_private)); if (!dev) return -ENODEV; #ifdef CONFIG_NET_FUNKINESS init_funky_net(dev); #endif クリーンアップã—ãŸã‚³ãƒ¼ãƒ‰ã®ä¾‹ (in header) #ifndef CONFIG_NET_FUNKINESS static inline void init_funky_net (struct net_device *d) {} #endif (in the code itself) dev = alloc_etherdev (sizeof(struct funky_private)); if (!dev) return -ENODEV; init_funky_net(dev); 3) マクãƒã‚ˆã‚Šã€Œ static inline ã€ã‚’推奨 「 static inline ã€é–¢æ•°ã¯ãƒžã‚¯ãƒã‚ˆã‚Šã‚‚ãšã£ã¨æŽ¨å¥¨ã•ã‚Œã¦ã„ã¾ã™ã€‚ãれらã¯ã€ 型安全性ãŒã‚ã‚Šã€é•·ã•ã«ã‚‚制é™ãŒç„¡ãã€ãƒ•ã‚©ãƒ¼ãƒžãƒƒãƒˆã®åˆ¶é™ã‚‚ã‚ã‚Šã¾ã›ã‚“。 gcc ã«ãŠã„ã¦ã¯ã€ãƒžã‚¯ãƒã¨åŒã˜ãらã„軽ã„ã§ã™ã€‚ マクãƒã¯ã€Œ static inline ã€ãŒæ˜Žã‚‰ã‹ã«ä¸é©åˆ‡ã§ã‚ã‚‹ã¨åˆ†ã‹ã‚‹å ´æ‰€(高速化パス㮠ã„ãã¤ã‹ã®ç‰¹å®šã®ã‚±ãƒ¼ã‚¹)や「 static inline ã€é–¢æ•°ã‚’使ã†ã“ã¨ãŒã§ããªã„よã†ãª å ´æ‰€(マクãƒã®å¼•æ•°ã®æ–‡å—列連çµã®ã‚ˆã†ãª)ã«ã ã‘使ã‚れるã¹ãã§ã™ã€‚ 「 static inline ã€ã¯ã€Œ static __inline__ ã€ã‚„「 extern inline ã€ã‚„ 「 extern __inline__ ã€ã‚ˆã‚Šã‚‚é©åˆ‡ã§ã™ã€‚ 4) è¨è¨ˆã«å‡ã‚Šã™ãŽã‚‹ãª ãã‚ŒãŒæœ‰ç”¨ã«ãªã‚‹ã‹ã©ã†ã‹åˆ†ã‹ã‚‰ãªã„よã†ãªä¸æ˜Žçžãªå°†æ¥ã‚’見越ã—ãŸè¨è¨ˆ ã‚’ã—ãªã„ã§ãã ã•ã„。「ã§ãã‚‹é™ã‚Šç°¡å˜ã«ã€ãã—ã¦ã€ãれ以上簡å˜ã«ãªã‚‰ ãªã„よã†ãªè¨è¨ˆã‚’ã—ã¦ãã ã•ã„。〠---------------------- セクション3 å‚考文献 ---------------------- Andrew Morton, "The perfect patch" (tpp). <http://www.zip.com.au/~akpm/linux/patches/stuff/tpp.txt> Jeff Garzik, "Linux kernel patch submission format". <http://linux.yyz.us/patch-format.html> Greg Kroah-Hartman, "How to piss off a kernel subsystem maintainer". <http://www.kroah.com/log/2005/03/31/> <http://www.kroah.com/log/2005/07/08/> <http://www.kroah.com/log/2005/10/19/> <http://www.kroah.com/log/2006/01/11/> NO!!!! No more huge patch bombs to linux-kernel@vger.kernel.org people! <http://marc.theaimsgroup.com/?l=linux-kernel&m=112112749912944&w=2> Kernel Documentation/CodingStyle: <http://users.sosdg.org/~qiyong/lxr/source/Documentation/CodingStyle> Linus Torvalds's mail on the canonical patch format: <http://lkml.org/lkml/2005/4/7/183> --