問題にはさまざまな種類がありますが、 それらすべてが障害報告に値するわけではありません。 もちろん、誰しもが完璧ではありませんので、 実際はコマンドの構文を勘違いしていたり、 設定ファイルを書き間違えているのに、 プログラムにバグを見つけた! と思い込んでしまうことがあるでしょう (とは言っても、それ自身、文書が適切に記述されていなかったり、 アプリケーションのエラー処理が甘いことを暗示している可能性があります)。 それ以外にも、障害報告を提出することが正しい行動ではなく、 あなたや開発者たちに不満を抱かせるだけという場合があります (訳注: はっきりと把握していないことを報告すべきではありません。 要領を得ない障害報告は扱いにくいものです)。 逆に、バグではありませんが障害報告を提出するのにふさわしい場合もあります — たとえば、既存機能の拡張や新しい機能の搭載のようなものです。
では、何がバグで何がバグでないのか、 どのようにして決めれば良いでしょうか? 簡単な経験則では、それを質問として (よくあるのは “どうすれば X できますか?” や “Y はどこで見つけることができますか?” のような形式で) 表現できるなら、あなたの問題はバグではありません。 いつも白黒がつけられるわけではありませんが、 この質問規則は大半の場合にあてはまります。 もし、このような質問に対する答えを求めているのなら、 FreeBSD general questions メーリングリスト で質問してみてください。
訳注: FreeBSD general questions メーリングリスト へのメールは英語でお願いします。 日本語での質問は、FreeBSD users-jp メーリングリスト
<[email protected]>
や FreeBSD-beginners-jp メーリングリスト などに送ってください。
バグではないものに関する障害報告を提出することが適切と考えられるのは、 以下のような場合です。
外部で管理されているソフトウェアの更新通知 (主に ports のことですが、BIND やさまざまな GNU ユーティリティのような外部で維持されている、 システムの基礎を構成するソフトェアも含まれます)。
メンテナンスされていない ports (MAINTAINER が [email protected] になっています) では、この手の更新通知は興味を抱いた committer が取り上げるかもしれませんし、あなたがその port を更新するパッチを提出することが求められるかもしれません。 あらかじめパッチを提出すれば、port がただちに更新される可能性が非常に高くなります。
port がメンテナンスされている場合は、 一次配布元から新たなバージョンがリリースされたことを通知する障害報告は committer に余分な作業をさせるだけであまり役に立たないかもしれません。 また、メンテナは新しいバージョンが出たことをすでに知っている可能性が高いです。 もしかすると、開発者と一緒に作業していて、 退行したところがないかなどをテストしているところかもしれません。
いずれの場合も、Port 作成者のためのハンドブック で説明されている手順がもっともよい結果をもたらします ( Contributing to the FreeBSD Ports Collection という文書も読んでみたいと思われるかもしれませんね)。
再現することができないバグは、めったに直すことができません。 もし、バグが一度だけ発生してそれが再現できないもので、 なおかつ他の人のシステムでも起こらないようであれば、 開発者がそれを再現できる可能性も、 何が悪いのかわかる可能性もありません。 これはバグが起こらなかったことを意味するわけではありません。 しかし、このような状況ではあなたの障害報告がバグの修正に つながる見込みは非常に薄いものです。 おまけに、この手のバグは実際は故障したハードディスクや過熱した CPU が原因で起きていることが多いのです (障害報告を提出する前には必ず、可能なら、 こうした原因を排除するよう努めるべきです)。
次に、誰に障害報告を提出するか決めます。 そのためには、FreeBSD を構成するソフトウェアがさまざまな要素で構成されていることを知っておく必要があります。
ベースシステムのコードで、FreeBSD への貢献者によって書かれ、維持されているもの。 たとえば、カーネル、C ライブラリやデバイスドライバ (kern に分類されているもの)、 バイナリユーティリティ (bin)、 マニュアルページや文書 (docs) やウェブページ (www) があります。 この領域のバグは全て FreeBSD 開発者に報告してください。
それ以外の人によって書かれ、維持されているベースシステムのコードで、 FreeBSD に取り込まれ、FreeBSD に合わせて変更されているもの。 たとえば、bind, gcc(1) や sendmail(8) があります。 この領域のバグのほとんどは FreeBSD 開発者に報告すべきですが、 問題が FreeBSD 特有でない場合には、 おおもとの作者に報告してください。 通常は、これらのバグは bin または gnu カテゴリに分類されます。
ベースシステムではなく FreeBSD Ports Collection (ports カテゴリ) の一部である個別のアプリケーション。 そのほとんどは FreeBSD が書いたものではありません。 FreeBSD が提供しているのは、 単なるアプリケーションをインストールする枠組みです。 したがって、問題が FreeBSD 特有であると信じられる場合にだけ FreeBSD 開発者に報告してください。 それ以外は、そのソフトウェアの開発者に連絡してください。
それから、問題が時宜を得たものか確認すべきです。 既に修正したバグに関する障害報告を受けとることほど開発者を悩ませるものはまずありません。
ベースシステムの問題で、FreeBSD のバージョンについてよく分かっていないなら、まず FAQ の FreeBSD バージョンに関する節を読んでください。 FreeBSD では、 ベースシステムのいくつかの最新ブランチ以外は修正できません。 そのため、古いバージョンについて障害報告を提出しても、 開発者から問題がまだ起きるか確認するために、 サポートされているバージョンにアップグレードするように勧められるだけかもしれません。 セキュリティオフィサチームが、 サポートされているバージョンの一覧 を管理しています。
ある port に問題がある場合、まずはじめに Ports Collection の最新版にアップグレードして、まだ問題があるか見てください。 これらのアプリケーションは速いペースで変更されるため、 FreeBSD で完全な最新版以外に対応するのは不可能です。 アプリケーションの古いバージョンにある問題は、 直しようがありません。
本文書、および他の文書は ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/ からダウンロードできます。
FreeBSD に関する質問がある場合には、ドキュメント を読んだ上で <[email protected]> まで (英語で)
連絡してください。
本文書に関する質問については、<[email protected]> まで電子メールを (英語で)
送ってください。