~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/Documentation/translations/ja_JP/SubmittingPatches

Version: ~ [ linux-6.12-rc7 ] ~ [ linux-6.11.7 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.60 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.116 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.171 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.229 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.285 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.323 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.12 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

Diff markup

Differences between /Documentation/translations/ja_JP/SubmittingPatches (Version linux-6.12-rc7) and /Documentation/translations/ja_JP/SubmittingPatches (Version linux-2.4.37.11)


  1 NOTE:                                             
  2 This is a version of Documentation/process/sub    
  3 This document is maintained by Keiichi KII <k-k    
  4 and the JF Project team <http://www.linux.or.j    
  5 If you find any difference between this docume    
  6 or a problem with the translation,                
  7 please contact the maintainer of this file or     
  8                                                   
  9 Please also note that the purpose of this file    
 10 for non English (read: Japanese) speakers and     
 11 fork. So if you have any comments or updates o    
 12 to update the original English file first.        
 13                                                   
 14 Last Updated: 2011/06/09                          
 15                                                   
 16 ==================================                
 17 これは、                                      
 18 linux-2.6.39/Documentation/process/submitting-    
 19 です。                                         
 20 翻訳団体: JF プロジェクト < http:/    
 21 翻訳日: 2011/06/09                           
 22 翻訳者: Keiichi Kii <k-keiichi at bx dot     
 23 校正者: Masanari Kobayashi さん <zap032    
 24          Matsukura さん <nbh--mats at nifty     
 25          Takeshi Hamasaki さん <hmatrjp at u    
 26 ==================================                
 27                                                   
 28         Linux カーネルに変更を加え    
 29         又は                                    
 30         かの Linus Torvalds の取り扱い    
 31                                                   
 32 Linux カーネルに変更を加えたいと    
 33 チの投稿に関連した仕組みに慣れ    
 34 おじけづかせることもあります。    
 35 てもらえやすくする提案を集めた    
 36                                                   
 37 コードを投稿する前に、Documentation    
 38 を通してチェックしてください。     
 39                                                   
 40 --------------------------------------------      
 41 セクション1 パッチの作り方と送    
 42 --------------------------------------------      
 43                                                   
 44 1) 「 diff -up 」                               
 45 ------------                                      
 46                                                   
 47 パッチの作成には「 diff -up 」又は    
 48                                                   
 49 Linux カーネルに対する全ての変更    
 50 生成してください。パッチを作成    
 51 数を指定して、unified 形式のパッ    
 52 変更がどの C 関数で行われたのか    
 53 この引数は生成した差分をずっと    
 54 カーネルソースの中のサブディレ    
 55 ディレクトリを基準にしないとい    
 56                                                   
 57 1個のファイルについてのパッチを    
 58 以下の作業を行えば十分です。        
 59                                                   
 60         SRCTREE=linux-2.6                         
 61         MYFILE=drivers/net/mydriver.c             
 62                                                   
 63         cd $SRCTREE                               
 64         cp $MYFILE $MYFILE.orig                   
 65         vi $MYFILE      # make your change        
 66         cd ..                                     
 67         diff -up $SRCTREE/$MYFILE{.orig,} > /t    
 68                                                   
 69 複数のファイルについてのパッチ    
 70 なわち変更を加えてない Linux カー    
 71 ソースとの差分を生成しないとい    
 72                                                   
 73         MYSRC=/devel/linux-2.6                    
 74                                                   
 75         tar xvfz linux-2.6.12.tar.gz              
 76         mv linux-2.6.12 linux-2.6.12-vanilla      
 77         diff -uprN -X linux-2.6.12-vanilla/Doc    
 78                 linux-2.6.12-vanilla $MYSRC >     
 79                                                   
 80 dontdiff ファイルには Linux カーネル    
 81 ファイルの一覧がのっています。    
 82 コマンドで無視されるべきです。d    
 83 ンの Linux カーネルソースツリーに    
 84                                                   
 85 投稿するパッチの中に関係のない    
 86 認してください。diff(1) コマンド    
 87 りのものであることを確認してく    
 88                                                   
 89 もしあなたのパッチが多くの差分    
 90 を意味のあるひとまとまりごとに    
 91 これは他のカーネル開発者にとっ    
 92 パッチを受け入れてもらうために    
 93 る多くのスクリプトがあります。     
 94                                                   
 95 Quilt:                                            
 96 http://savannah.nongnu.org/projects/quilt         
 97                                                   
 98 2) パッチに対する説明                    
 99                                                   
100 パッチの中の変更点に対する技術    
101                                                   
102 説明はできる限り具体的に。もっ    
103 「ドライバー X に対するバグフィ    
104 テム X に対する更新を含んでいま    
105                                                   
106 パッチの説明を Linux カーネルのソ    
107 コミットログとして簡単に引用で    
108 以下の #15 を見てください。            
109                                                   
110 説明が長くなりだしたのであれば    
111 という兆候です。次の #3 を見てく    
112                                                   
113 パッチ(シリーズ)を(再)投稿する時    
114 パッチに含めてください。ただ「    
115 書かないでください。そして、パ    
116 パッチに追記させるため、過去の    
117 手間をかけさせないでください。     
118 つまり、パッチシリーズとその説    
119 人、レビューする人、どちらのた    
120 過去のバージョンのパッチを受け    
121                                                   
122 登録済みのバグエントリを修正す    
123 や URL を明記してください。            
124                                                   
125 特定のコミットを参照したい場合    
126 も含めてください。それにより、    
127 人にわかりやすくなります。           
128 例 (英文のママ):                            
129                                                   
130        Commit e21d2170f36602ae2708 ("video: re    
131        platform_set_drvdata()") removed the un    
132        platform_set_drvdata(), but left the va    
133        delete it.                                 
134                                                   
135                                                   
136 3) パッチの分割                             
137                                                   
138 意味のあるひとまとまりごとに変    
139                                                   
140 例えば、もし1つのドライバーに対    
141 化の両方の変更を含んでいるので    
142 けてください。もし変更箇所に API    
143 ドライバーが含まれているなら、2    
144                                                   
145 一方で、もしあなたが多数のファ    
146 るのであれば、その変更を1つのパ    
147 意味的に同じ1つの変更は1つのパ    
148                                                   
149 あるパッチが変更を完結させるた    
150 それは問題ありません。パッチの    
151 している」と簡単に注意書きをつ    
152                                                   
153 もしパッチをより小さなパッチの    
154 15かそこらのパッチを送り、その    
155                                                   
156 4) パッチのスタイルチェック           
157                                                   
158 あなたのパッチが基本的な( Linux     
159 ていないかをチェックして下さい    
160 見つけることができます。コーデ    
161 時間を無駄にするだけなので、恐    
162 拒否されるでしょう。                    
163                                                   
164 あなたはパッチを投稿する前に最    
165 ( scripts/checkpatch.pl )を利用してパッ    
166 もしパッチに違反がのこっている    
167 理由を示せるようにしておく必要    
168                                                   
169 5) 電子メールの宛先の選び方           
170                                                   
171 MAINTAINERS ファイルとソースコード    
172 更がメンテナのいる特定のサブシ    
173 れば、その人に電子メールを送っ    
174 ./scripts/get_maintainers.pl のスクリプ    
175                                                   
176 もし、メンテナが載っていなかっ    
177 LKML ( linux-kernel@vger.kernel.org )へパッ    
178 のカーネル開発者はこのメーリン    
179 コメントを得ることができます。     
180                                                   
181 15個より多くのパッチを同時に vger    
182 いでください!!!                             
183                                                   
184 Linus Torvalds は Linux カーネルに入る    
185 です。電子メールアドレスは torval    
186 多くの電子メールを受け取ってい    
187 避けるべきです。                          
188                                                   
189 バグフィックスであったり、自明    
190 必要としないパッチは Linus へ電子    
191 話し合いを必要としたり、明確な    
192 は LKML へ送られるべきです。パッ    
193 Linus へ送るべきです。                    
194                                                   
195 6) CC (カーボンコピー)先の選び方      
196                                                   
197 特に理由がないなら、LKML にも CC     
198                                                   
199 Linus 以外のカーネル開発者は変更    
200 の変更に対してコメントをくれた    
201 るかもしれません。LKML とは Linux     
202 リングリストです。USB やフレーム    
203 ムなどの特定のサブシステムに関    
204 の変更に、はっきりと関連のある    
205 MAINTAINERS ファイルを参照してくだ    
206                                                   
207 VGER.KERNEL.ORG でホスティングされて    
208 サイトに載っています。                 
209 <http://vger.kernel.org/vger-lists.html>          
210                                                   
211 もし、変更がユーザランドのカー    
212 るのであれば、MAN-PAGES のメンテナ    
213 があります)に man ページのパッチ    
214 情報がマニュアルページの中に入    
215 通知を送ってください。                 
216                                                   
217 たとえ、メンテナが #5 で反応がな    
218 加えたときには、いつもメンテナ    
219                                                   
220                                                   
221 7) MIME やリンクや圧縮ファイルや    
222                                                   
223 Linus や他のカーネル開発者はあな    
224 る必要があります。カーネル開発    
225 部分にコメントをするために、標    
226 できることは重要です。                 
227                                                   
228 上記の理由で、すべてのパッチは    
229 れるべきです。警告:あなたがパ    
230 チを改悪するエディターの折り返    
231                                                   
232 パッチを圧縮の有無に関わらず MIM    
233 ピュラーな電子メールクライアン    
234 キストとして送信するとは限らな    
235 イアントがコードに対するコメン    
236 MIME 形式の添付ファイルは Linus に    
237 受け入れてもらう可能性が低くな    
238                                                   
239 例外:お使いの電子メールクライ    
240 あれば、誰かが MIME 形式のパッチ    
241                                                   
242 余計な変更を加えずにあなたのパ    
243 のヒントについては Documentation/proc    
244                                                   
245 8) 電子メールのサイズ                    
246                                                   
247 パッチを Linus へ送るときは常に #7    
248                                                   
249 大きなパッチはメーリングリスト    
250 未圧縮で 300KB を超えるようである    
251 サーバに保存し、保存場所を示す     
252                                                   
253 9) カーネルバージョンの明記           
254                                                   
255 パッチが対象とするカーネルのバ    
256 サブジェクトに付けることが重要    
257                                                   
258 パッチが最新バージョンのカーネ    
259 そのパッチを採用しないでしょう    
260                                                   
261 10) がっかりせず再投稿                   
262                                                   
263 パッチを投稿した後は、辛抱強く    
264 チを気に入って採用すれば、Linus     
265 の中で姿を見せるでしょう。           
266                                                   
267 しかし、パッチが次のバージョン    
268 理由があるのでしょう。その原因    
269 したパッチを投稿するのはあなた    
270                                                   
271 Linus があなたのパッチに対して何    
272 て普通のことです。それは自然な    
273 け取っていないのであれば、以下    
274 * パッチが最新バージョンの Linux     
275 * パッチが LKML で十分に議論され    
276 * スタイルの問題(セクション2を参    
277 * 電子メールフォーマットの問題(    
278 * パッチに対する技術的な問題         
279 * Linus はたくさんの電子メールを    
280   失った                                       
281 * 不愉快にさせている                     
282                                                   
283 判断できない場合は、LKML にコメ    
284                                                   
285 11) サブジェクトに「 PATCH 」            
286                                                   
287 Linus や LKML への大量の電子メール    
288 「 [PATCH] 」を付けることが慣習と    
289 カーネル開発者がパッチであるの    
290 かをより簡単に識別できます。        
291                                                   
292 12) パッチへの署名                         
293                                                   
294 誰が何をしたのかを追いかけやす    
295 メンテナを経て最終的に Linux カー    
296 メールでやり取りされるパッチに    
297 ました。                                      
298                                                   
299 「 sign-off 」とは、パッチがあなた    
300 あなたがそのパッチをオープンソ    
301 という証明をパッチの説明の末尾    
302 ルールはとても単純です。以下の    
303                                                   
304         原作者の証明書( DCO ) 1.1          
305                                                   
306         このプロジェクトに寄与す    
307                                                   
308         (a) 本寄与は私が全体又は一    
309             ル中に明示されたオープ    
310             を持っている。もしくは    
311                                                   
312         (b) 本寄与は、私が知る限り    
313             ーされている既存の作品    
314             ンスの下で、私が全体又    
315             される同一のオープンソ    
316             投稿することが許可され    
317             いる。もしくは、              
318                                                   
319         (c) 本寄与は(a)、(b)、(c)を証    
320             ものであり、私はそれに    
321                                                   
322         (d) 私はこのプロジェクトと    
323             る。同時に、関与した記    
324             含む)が無期限に保全され    
325             オープンソースライセン    
326             同意する。                       
327                                                   
328 もしこれに同意できるなら、以下    
329                                                   
330         Signed-off-by: Random J Developer <rand    
331                                                   
332 実名を使ってください。(残念です    
333                                                   
334 人によっては sign-off の近くに追加    
335 無視されますが、あなたはそのタ    
336 な情報を示したりすることができ    
337                                                   
338 あなたがサブシステムまたはブラ    
339 ツリーにマージするために、わず    
340 あなたのツリーの中のコードと投    
341 もし、あなたが厳密に上記ルール(    
342 とるよう依頼すべきです。しかし    
343 ことになります。ルール(b)はあな    
344 しかし、投稿者のコードを修正し    
345 ことはとても失礼なことです。こ    
346 Signed-off-by とあなたがその末尾に    
347 加えたことを示す1行を追加するこ    
348 (その1行の書き方に)決まりはあり    
349 と修正内容を記載するやり方は目    
350 あることを明確にするのに十分な    
351                                                   
352         Signed-off-by: Random J Developer <rand    
353         [lucky@maintainer.example.org: struct     
354         Signed-off-by: Lucky K Maintainer <luck    
355                                                   
356 あなたが安定版のブランチを管理    
357 修正のマージ、と同時に苦情から    
358 有用となります。いかなる事情が    
359 アイデンティティ情報(From ヘッダ)    
360                                                   
361 バックポートする人のための特別    
362 メッセージのトップ(サブジェクト    
363 ことは一般的で有用な慣習です。    
364                                                   
365     Date:   Tue May 13 19:10:30 2008 +0000        
366                                                   
367         SCSI: libiscsi regression in 2.6.25: f    
368                                                   
369         commit 4cf1043593db6a337f10e006c23c69e    
370                                                   
371 そして、これは 2.4 ツリーでの一    
372                                                   
373     Date:   Tue May 13 22:12:27 2008 +0200        
374                                                   
375         wireless, airo: waitbusy() won't delay    
376                                                   
377         [backport of 2.6 commit b7acbdfbd1f277    
378                                                   
379 どんな形式であれ、この情報はあ    
380 解決しようとしている人にとって    
381                                                   
382 13) いつ Acked-by: と Cc: を使うのか      
383                                                   
384 「 Signed-off-by: 」タグはその署名者    
385 の伝播パスにいたことを示してい    
386                                                   
387 ある人が直接パッチの準備や作成    
388 る承認を記録し、示したいとしま    
389 えます。Acked-by: はパッチのチェン    
390                                                   
391 パッチの影響を受けるコードのメ    
392 の伝播パスにいなかった時にも、    
393                                                   
394 Acked-by: は Signed-off-by: のように公    
395 少なくともパッチをレビューし、    
396 ことからパッチをマージする人が    
397 Acked-by: へ置き換えることがありま    
398                                                   
399 Acked-by: が必ずしもパッチ全体の承    
400 あるパッチが複数のサブシステム    
401 のメンテナからの Acked-by: を持っ    
402 そのメンテナのコードに影響を与    
403 この点は、ご自分で判断してくだ    
404 メーリングリストアーカイブの中    
405                                                   
406 パッチにコメントする機会を持っ    
407 その人を指す「Cc:」タグを任意で    
408 明確なアクションなしに付与でき    
409 このタグはパッチに関心があると    
410 を明文化します。                          
411                                                   
412 14) Reported-by:, Tested-by:, Reviewed-by: お    
413                                                   
414 他の誰かによって報告された問題    
415 クレジットするために、Reported-by:     
416 こまめにバグ報告者をクレジット    
417 コミュニティの力となってくれる    
418 ただし、報告者の許可無くこのタ    
419 問題が公の場で報告されていなか    
420                                                   
421 Tested-by: タグはタグで指定された    
422 していることを示します。このタ    
423 知らせ、将来の関連パッチのテス    
424 対するクレジットを保証します。     
425                                                   
426 Reviewed-by: タグは、それとは異なり    
427 受け入れ可能とみなされたパッチ    
428                                                   
429         レビューアによる監督宣言      
430                                                   
431         私は Reviewed-by: タグを提示す    
432                                                   
433         (a) 私はメインラインカーネ    
434             (訳注)」を検証し、技術    
435                                                   
436         訳注:                                   
437         「即応性」の原文は "readiness    
438         パッチが十分な品質を持っ    
439         行うことができる状態であ    
440         している。                           
441                                                   
442         (b) パッチに関するあらゆる    
443             である。私はそれらのコ    
444                                                   
445         (c) 投稿に伴い改良されるコ    
446             カーネルにとって価値の    
447             議論になり得るような問    
448                                                   
449         (d) 私はパッチをレビューし    
450             状況においてその宣言し    
451             いかなる保証もしない(特    
452                                                   
453 Reviewed-by タグはそのパッチがカー    
454 問題を残していないという意見の    
455 作業を終えたら)パッチに対して Re    
456 レビューアの寄与をクレジットす    
457 知らせる働きを持ちます。そのパ    
458 レビューを実施したレビューアに    
459 パッチをカーネルにマージする可    
460                                                   
461 Suggested-by: タグは、パッチのアイ    
462 ことを示し、アイデアの提供をク    
463 ない場合、特にそのアイデアが公    
464 タグをつけないように注意してく    
465 クレジットしていけば、望むらく    
466 なってくれるかもしれません。        
467                                                   
468 15) 標準的なパッチのフォーマット    
469                                                   
470 標準的なパッチのサブジェクトは    
471                                                   
472     Subject: [PATCH 001/123] subsystem: summar    
473                                                   
474 標準的なパッチの、電子メールの    
475                                                   
476   - パッチの作成者を明記する「 fr    
477                                                   
478   - 空行                                        
479                                                   
480   - 説明本体。これはこのパッチを    
481     (変更履歴)にコピーされます。     
482                                                   
483   - 上述した「 Signed-off-by: 」行。    
484     ジログ内にコピーされます。       
485                                                   
486   - マーカー行は単純に「 --- 」で    
487                                                   
488   - 余計なコメントは、チェンジロ    
489                                                   
490   - 実際のパッチ(差分出力)              
491                                                   
492 サブジェクト行のフォーマットは    
493 ソートしやすいものになっていま    
494 はソートをサポートしています)パ    
495 るため、数字でのソートとアルフ    
496                                                   
497 電子メールのサブジェクト内のサ    
498 分野またはサブシステムを識別で    
499                                                   
500 電子メールのサブジェクトの「summ    
501 に表現しなければなりません。「s    
502 けません。パッチシリーズ中でそ    
503 使ってはいけません(「パッチシリ    
504 パッチ群です)。                            
505                                                   
506 あなたの電子メールの「summary phras    
507 なるように心がけてください。「s    
508 ずっと伝播していきます。「summary    
509 ために議論の中で利用するかもし    
510 人々はそのパッチに関連した議論    
511 検索したがるでしょう。それはま    
512 「git log --oneline」のようなツール    
513 唯一目にとまる情報となるでしょ    
514                                                   
515 これらの理由のため、「summary phras    
516 変更するかの2つの情報をせいぜい    
517 「summary phrase」は簡潔であり説明    
518 まとめられている概要となるべき    
519                                                   
520 「summary phrase」は「Subject: [PATCH tag]    
521 大括弧で閉じられたタグを接頭辞    
522 「summary phrase」の一部とは考えま    
523 表現します。                                
524 一般的には「v1, v2, v3」のようなバ    
525 コメントを反映するために複数の    
526 「RFC」のようなコメントを要求す    
527 パッチがあれば、個々のパッチに    
528 かまいません。これは開発者がパ    
529 そして、開発者がパッチシリーズ    
530 適用するのを保証するためです。     
531                                                   
532 サブジェクトの例を二つ                 
533                                                   
534     Subject: [patch 2/5] ext2: improve scalabi    
535     Subject: [PATCHv2 001/207] x86: fix eflags    
536                                                   
537 「 from 」行は電子メールのボディ    
538 その形式は以下のとおりです。        
539                                                   
540         From: Original Author <author@example.c    
541                                                   
542 「 from 」行はチェンジログの中で    
543 ている人を特定するものです。「     
544 ダーの「 From: 」が、チェンジログ    
545 れるでしょう。                             
546                                                   
547 説明本体は無期限のソースのチェ    
548 本体はそのパッチに至った議論の    
549 がその詳細を思い出すことができ    
550 障害の症状(カーネルログメッセー    
551 対処可能なパッチを求めてコミッ    
552 パッチがコンパイル問題を解決す    
553 ことができる情報だけで十分であ    
554 ありません。「summary phrase」と同    
555                                                   
556 「 --- 」マーカー行はパッチ処理    
557 部分を認識させるという重要な役    
558                                                   
559 「 --- 」マーカー行の後の追加コ    
560 があります。diffstat コマンドとは    
561 追加され何行消されたかを示すも    
562 おいて役立ちます。その時点でだ    
563 は無期限に保存されるチェンジロ    
564 ようなコメントもマーカー行の後    
565 このようなコメントの良い例とし    
566 表す「パッチの変更履歴」が挙げ    
567                                                   
568 「 --- 」マーカー行の後に diffstat     
569 名はカーネルソースツリーのトッ    
570 のスペースをとり過ぎないように    
571 を指定してください(インデントを    
572                                                   
573 適切なパッチのフォーマットの詳    
574 ください。                                   
575                                                   
576 16) 「git pull」要求の送り方(Linus の    
577                                                   
578 間違ったブランチから引っ張るの    
579 ブランチ名を同じ行に1行で記載し    
580 で全て選択できます。                    
581                                                   
582 正しい形式は下記の通りです。        
583                                                   
584         "Please pull from                         
585                                                   
586                 git://jdelvare.pck.nerim.net/j    
587                                                   
588          to get these changes:"                   
589                                                   
590 その結果、アドレスを自分自身で    
591 何度か間違ったブランチから引っ    
592 検証して間違っていることに気づ    
593 「探したり」、正しいブランチ名    
594 なくなればより快適になるでしょ    
595                                                   
596 diffstat の結果を生成するために「     
597 ください。-M オプションはファイ    
598 新規ファイル、削除されたファイ    
599                                                   
600 -M オプション(ファイル名の変更検    
601 異なってきます。git は大規模な変    
602 判断するためです。                       
603                                                   
604 ------------------------------------              
605 セクション2 - ヒントとTIPSと小技      
606 ------------------------------------              
607                                                   
608 このセクションは Linux カーネルに    
609 「お約束」の多くを載せています    
610 し例外を適用するには、本当に妥    
611 セクションを Linus のコンピュータ    
612                                                   
613 1) Documentation/process/coding-style.rstを    
614                                                   
615 言うまでもなく、あなたのコード    
616 も逸脱していると、レビューやコ    
617 れません。                                   
618                                                   
619 特筆すべき例外は、コードをある    
620 するときです。この場合、コード    
621 に関して移動以外の変更を一切加    
622 コードの移動とあなたが行ったコ    
623 ります。これは実際に何が変更さ    
624 なるとともに、ツールにコードの    
625                                                   
626 投稿するより前にパッチのスタイ    
627 あなたのパッチをチェックしてく    
628 論としてではなく、指標としてみ    
629 はしているが修正するより良く見    
630 のがベストです。                          
631                                                   
632 スタイルチェッカーによる3段階の    
633  - エラー: 間違っている可能性が    
634  - 警告:注意してレビューする必    
635  - チェック:考慮する必要がある     
636                                                   
637 あなたはパッチに残っている全て    
638 理由を示せるようにしておく必要    
639                                                   
640 2) #ifdefは見苦しい                          
641                                                   
642 ifdef が散乱したコードは、読むの    
643 で ifdef を使わないでください。代    
644 条件付きで、コードの中で使われ    
645 てください。後はコンパイラが、    
646 しょう。                                      
647                                                   
648 まずいコードの簡単な例                 
649                                                   
650         dev = alloc_etherdev (sizeof(struct fu    
651         if (!dev)                                 
652                 return -ENODEV;                   
653         #ifdef CONFIG_NET_FUNKINESS               
654         init_funky_net(dev);                      
655         #endif                                    
656                                                   
657 クリーンアップしたコードの例        
658                                                   
659 (in header)                                       
660         #ifndef CONFIG_NET_FUNKINESS              
661         static inline void init_funky_net (str    
662         #endif                                    
663                                                   
664 (in the code itself)                              
665         dev = alloc_etherdev (sizeof(struct fu    
666         if (!dev)                                 
667                 return -ENODEV;                   
668         init_funky_net(dev);                      
669                                                   
670 3) マクロより「 static inline 」を推    
671                                                   
672 「 static inline 」関数はマクロより    
673 型安全性があり、長さにも制限が    
674 gcc においては、マクロと同じくら    
675                                                   
676 マクロは「 static inline 」が明らか    
677 いくつかの特定のケース)や「 stati    
678 場所(マクロの引数の文字列連結の    
679                                                   
680 「 static inline 」は「 static __inline__     
681 「 extern __inline__ 」よりも適切です    
682                                                   
683 4) 設計に凝りすぎるな                    
684                                                   
685 それが有用になるかどうか分から    
686 をしないでください。「できる限    
687 ないような設計をしてください。    
688                                                   
689 ----------------------                            
690 セクション3 参考文献                     
691 ----------------------                            
692                                                   
693 Andrew Morton, "The perfect patch" (tpp).         
694   <http://www.ozlabs.org/~akpm/stuff/tpp.txt>     
695                                                   
696 Jeff Garzik, "Linux kernel patch submission fo    
697   <https://web.archive.org/web/20180829112450/    
698                                                   
699 Greg Kroah-Hartman, "How to piss off a kernel     
700   <http://www.kroah.com/log/linux/maintainer.h    
701   <http://www.kroah.com/log/linux/maintainer-0    
702   <http://www.kroah.com/log/linux/maintainer-0    
703   <http://www.kroah.com/log/linux/maintainer-0    
704   <http://www.kroah.com/log/linux/maintainer-0    
705                                                   
706 NO!!!! No more huge patch bombs to linux-kerne    
707   <https://lore.kernel.org/r/20050711.125305.08    
708                                                   
709 Kernel Documentation/process/coding-style.rst:    
710   <http://users.sosdg.org/~qiyong/lxr/source/D    
711                                                   
712 Linus Torvalds's mail on the canonical patch f    
713   <https://lore.kernel.org/r/Pine.LNX.4.58.0504    
714                                                   
715 Andi Kleen, "On submitting kernel patches"        
716   Some strategies to get difficult or controve    
717   http://halobates.de/on-submitting-patches.pd    
718                                                   
719 --                                                
720                                                   
721                                                   
                                                      

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php