4. 障害報告の書き方

自分の問題が障害報告を行うに値すると結論を出し、 そしてそれが FreeBSD の問題点であると判断したのですから、 実際に障害報告を執筆する時です。 環境変数 VISUAL (か、もし VISUAL が設定されていなければ EDITOR) が何らかの使える値に設定されているか確認して、 send-pr(1) を実行します。

4.1. パッチやファイルを添付する

send-pr(1) プログラムは、 障害報告にファイルを添付する機能を備えています。 あなたが望む数だけ、それぞれ一意の名前を持ったファイル (すなわち、パスを除いた適切な名前のファイル) を添付することができます。 コマンドラインオプション -a で 添付するファイルの名前を指定してください。

% send-pr -a /var/run/dmesg -a /tmp/errors

添付するファイルがバイナリであっても心配しないでください。 メールエージェントが混乱しないように、自動的に符合化が行われます。

パッチは context 形式か unified 形式の差分を diff(1)-c-u オプションを 使って作成してください。 パッチを添付する場合、 開発者があなたの報告を読んで簡単にパッチを適用できるように、 修正したファイルの正確な CVS のリビジョン番号が特定できるか 確認してください。

一般的に、 障害報告の中に小さなパッチを含める分にはいいのですが、 記載される問題についての修正が大規模な場合や新しいコードの場合は 十分な査読を行なった後にコミットすべきであるため、 パッチを Web や FTP サーバに置き、その URL を障害報告に含めてください。 電子メールに含めたパッチはサイズが大きいと分割される傾向にあり (とりわけ Gnats が処理に関わるときはそうです)、 肝心な部分が変にならないように注意をはらってください。 また、パッチに変更があった場合、 元の障害報告へのフォローアップとしてパッチ全体を再提出しなくとも Web から該当部分のパッチを送信して変更することができます。

また、障害報告かパッチ自体に明確に指定がなければ、 あなたが提出したパッチは修正した元のファイルと同じ条件の ライセンス下にあるものと仮定されることに留意しておくべきです。

4.2. テンプレートに記入する

テンプレートは特定のフィールドから成り立っており、 あらかじめ書き込まれた部分がいくつかあります。そこには フィールドの目的が何かを説明する解説や そのフィールドに利用可能な値が書かれています。 コメントの部分は、自分で変更・削除しなくても、 自動的に削除されますので心配する必要はありません。

テンプレートの先頭にある SEND-PR: と書かれている行の下が電子メールのヘッダです。 通常、この部分を変更する必要はありませんが、 障害報告を送信する機械やアカウントで メールを出すことはできるが受けとることができない場合、 From:Reply-To: に 実際のメールアドレスを設定すべきです。 また、自分 (や他の誰か) に障害報告の複製を送りたい場合は、 電子メールアドレスを Cc: ヘッダに追加してください。

次に、一連の一行フィールドが続きます。

訳注: フィールドの意味が分かり易いように フィールド名を訳していますが、 フィールドの値も含めて 実際のフィールド名は英文字である必要があります。

最後に、一連の複数行フィールドがあります。

4.3. 障害報告を送信する

テンプレートを書き終えて、 保存してエディタを終了すると、send-pr(1)s)end, e)dit or a)bort? のような 表示を出して指示を求めます。 s を押せば障害報告の提出に進めますし、 e だとエディタが再び実行されてさらに編集できます。 a なら作業を中止できます。 abort を選択した場合、いままで書いていた障害報告はディスクに残りますので (send-pr(1) は終了前にそのファイル名を示します)、 暇な時にそれを編集したり、場合によっては よりネットワーク接続性のよいシステムに持っていくことができるでしょう。 この作業ファイルは、send-pr(1)-f オプションを使って送ることができます。

% send-pr -f ~/my-problem-report

上記の操作では、指定されたファイルを読み込み、 書式が正しいか検証し、ファイル中のコメント部分を取り除いて、 障害報告が送信されます。