FreeBSD への貢献

$FreeBSD: head/ja_JP.eucJP/articles/contributing/article.xml 40064 2012-11-18 14:39:46Z ryusuke $

$FreeBSD: head/ja_JP.eucJP/articles/contributing/article.xml 40064 2012-11-18 14:39:46Z ryusuke $

FreeBSD は The FreeBSD Foundation の登録商標です。

IEEE, POSIX および 802 は アメリカ合衆国における Institute of Electrical and Electronics Engineers, Inc. の登録商標です。

製造者および販売者が製品を区別するのに 用いている表示の多くは、商標とされています。 この文書に登場する表示のうち FreeBSD Project がその商標を確認しているものには、その表示に続いて “™” または “�” 記号がおかれています。

この文書は、個人や団体が FreeBSD プロジェクトに貢献するためのいくつかの方法について説明しています。


目次
1. 何が必要?
2. 貢献の仕方

あなたも FreeBSD のために貢献したくなりましたか? 素晴らしい! FreeBSD は生き残るためにユーザベースの貢献に頼っています。 あなたの貢献は感謝されるだけではなく、FreeBSD が成長し続けるために極めて重要なものなのです!

一部の人達が発言しているのとは反対に、 貢献を受け付けてもらうために腕利きのプログラマーになるとか FreeBSD コアチームの人と親友になる必要はありません。 多くのそして益々増加する世界中の貢献者達が FreeBSD を開発しており、 彼らの年齢、専門技術分野は多岐に渡っています。 手の空いている人よりも成すべき仕事の方が多く、 お手伝いはいつでも歓迎されています。

FreeBSD プロジェクトはカーネルや散在しているユーティリティよりも、 オペレーティングシステム環境に対して責任を持っています。 私たちの TODO リストには文書整備、ベータテスト、 インストーラや専門化されたタイプのカーネル開発の好例を紹介するなど非常に広い範囲の作業があります。 あなたの技能レベルや分野に関わらず、 プロジェクトを支援できることが必ず何かあります!

FreeBSD 関連の事業に携わる商業団体が私たちにコンタクトすることも歓迎しています。 あなたの製品を (FreeBSD 上で) 動作させるには、 特別な拡張が必要ではありませんか? あまりにも風変わりな要求でなければ、 それを受け入れる用意が私たちにあるとわかるはずです。 付加価値のある製品ですか? 私たちに知らせてください! 多分私たちは、 ある面において共同して作業をすることができるでしょう。 フリーソフトウェア界は、 ソフトウェアがどのように開発され、 販売され、保守されていくかについて、既存の仮説に挑戦しています。 少なくとももう一度考慮してみることを私たちは強くお奨めします。


1. 何が必要?

次の課題とサブプロジェクトの一覧は、色々な TODO リストとユーザからの要求を合わせたものです。


1.1. 進行中の非プログラマ向けの課題

FreeBSD に関わっている中には、プログラマではない人がたくさんいます。 プロジェクトには、文書を書く人、Web デザイナ、サポートを行う人がいます。 貢献するのに必要なのは、時間の投資と学ぶ意欲です。

  1. 定期的に FAQ とハンドブックを通して読んでみてください。 もしまずい説明や古い事柄や完全に間違っていることなどがあれば私達に教えてください。 さらに良いのは我々に修正案を送ることです (Docbook は学ぶのにそれほど難しくありませんが、 プレインテキストでも問題はありません)。

  2. FreeBSD の文書を自分の母国語に翻訳するのを手伝ってください。 文書がすでに存在すれば、もっと文書を翻訳したり、 その翻訳が最新の状態かどうか確認するのを手伝うことができます。 まず FreeBSD ドキュメンテーションプロジェクト入門の 翻訳に関する FAQ (よくある質問とその答え) を一読してください。 とはいっても、 そうすることによってあなたがすべての FreeBSD 文書の翻訳に携わるようになるわけではないですからね。 — ボランティアとして、 多少に関わらず、自分がやろうと思うだけやってください。 いったん誰かが翻訳を始めたら、 たくさんの人達がいつだって協力してくれますから。 もし翻訳に費す時間やエネルギーが限られているなら、 まずインストール方法の翻訳からお願いします (訳注: なぜなら、 もっとも必要とされている文書がそれだからです)。

  3. たまに (もしくは定期的に) FreeBSD general questions メーリングリストcomp.unix.bsd.freebsd.misc ニュースグループ を読んでください。 これは、あなたの持っている専門知識を共有したり、 誰かが抱えている問題を解決するのに非常に有効なものになり得ることです。 時にはあなた自身で新しいことを学ぶことさえできるかもしれません。 これらのフォーラムはやるべきことのアイディアの源にもなり得るのです。


1.2. 進行中のプログラマ向けの課題

このセクションで挙げる課題は膨大な時間の投資または FreeBSD のカーネルに関する深い知識、もしくは両方を必要とします。 しかしながら、“週末ハッカー” に適した立派な課題も数多くあります。

  1. FreeBSD-CURRENT を運用しており、 状態の良いインターネット接続があるならば、 current.FreeBSD.org という一日に一回フルリリースを行っているマシンがあります — 時おり最新のリリースをそこからインストールし、 その過程で何か問題があるなら報告してください。

  2. FreeBSD problem reports メーリングリスト を読んでください。 そこではあなたが建設的なコメントを付けたりテストできるパッチが提供されているような問題があるかもしれません。 もしくはそれらの問題の一つをあなた自身で修正することさえできるかもしれません。

  3. -CURRENT に正しく当てられるがしばらく経っても (通常は 2, 3 週間) -STABLE に取り込まれてないようなバグフィックスがあるならばコミッターに丁寧に思い出させてください。

  4. 寄贈ソフトウェアをソースツリーの src/contrib に移動させてください。

  5. src/contrib 以下のコードが最新のものであるか確認してください。

  6. 警告を詳細に報告するようにしてソースツリー全体 (もしくはその一部) を構築してみてください。 そして警告が出ないようにしてください。

  7. ports で、gets() を使っているとか malloc.h をインクルードしているなどといった警告が出ないようにしてください。

  8. もしなんらかの ports に関わっていて、 FreeBSD に固有の変更が必要であれば、 あなたのパッチを作者にフィードバックしてください (次のバージョンが出た時にあなたが楽になります)。

  9. POSIX® のような公式標準の写しを入手してください。FreeBSD C99 & POSIX 標準適合プロジェクトのウェブサイトに、 そういった標準へのリンクがいくつかあります。 FreeBSD の挙動を標準が要求するものと比較してください。挙動が異なる場合、 特にそれが仕様の取るに足らなかったり分かりにくい細かい部分なら、 障害報告を提出してください。できればどう修正すべきか明らかにして、 障害報告にパッチをつけてください。標準が間違っていると感じたら、 標準化団体にその疑問を糺してください。

  10. この一覧に追加する課題を提案してください!


1.3. 障害報告 (PR; Problem Report) データベースにおける作業

FreeBSD 障害報告一覧では、現在問題となっている障害報告と、 FreeBSD の利用者によって提出された改良の要望すべての一覧を公開しています。 障害報告データベースには、 プログラマ向けと非プログラマ向けの課題が共に含まれています。 open 状態の障害報告を見て、興味を引くものがあるか確かめてください。 なかには、障害報告に対する修正が適切なものであるかどうか単にチェックするだけのとても簡単な作業もあるでしょうし、 ずっと複雑なものや、修正が含まれてすらいないものもあるでしょう。

まず、まだ誰にも割り当てられていない障害報告から作業を始めてください。 もし、誰か他の人に割り当てが決まっているけれども自分が作業可能だ、 という障害報告があれば、作業ができるかどうか、 割り当てられている人に電子メールで問い合わせてください。— 既にテスト用パッチが用意されているかもしれませんし、 より進んだ考えに関して議論ができるかもしれません。


1.4. “アイディア”ページの項目

FreeBSD プロジェクトに貢献したい人のために ボランティアのための FreeBSD のプロジェクトとアイディア一覧 も用意されています。 この一覧は常に更新され続けており、それぞれのプロジェクトについて、 プログラマと非プログラマ両方に向けた項目があります。


2. 貢献の仕方

一般的に、システムへの貢献は次の 5 つのカテゴリの 1 つ以上に分類されます:


2.1. バグ報告と一般的な論評

一般的な技術的関心事に関するアイデアや提案は FreeBSD technical discussions メーリングリスト へメールしてください。同様に、このような事柄に興味のある (そして膨大なメール! に耐えられる) 人は、 FreeBSD technical discussions メーリングリスト に参加すると良いでしょう。 このメーリングリストや他のメーリングリストに関する詳しい情報については FreeBSD ハンドブックを参照してください。

バグを発見したり変更を送付しようとしている場合は send-pr(1) プログラムか ウェブベースの send-pr を使用して報告してください。 バグレポートの各項目を埋めるようにしてください。65KB を超えるのでなければ、 レポート中に直接パッチを入れてくださって結構です。 パッチがソースツリーにすぐ適用できるものならば、 報告の概要に [PATCH] と書いておいてください。 パッチを入れる場合、カット&ペーストはしないで ください。 カット&ペーストではタブがスペースに展開されてパッチが使い物にならなくなってしまいます。 パッチが 20KB を超える場合は、 それらを (gzip(1)bzip2(1) で) 圧縮し、 圧縮したパッチを uuencode(1) を使ってバグ報告に含めることも検討してください。

レポートがファイリングされれば、 バグ報告の確認とトラッキング番号をメールで受け取るはずです。 このトラッキング番号を覚えておき、問題に関する詳細情報を にメールで送って更新できるようにしてください。たとえば "Re: kern/3377" のように、 この番号をサブジェクト行に使用してください。 すべてのバグレポートの追加情報は、 この方法で送付されなければいけません。

もしタイムリーに (あなたの電子メール接続形態にもよりますが、 3 日から 1 週間) 確認を受けとれないとか、何らかの理由で send-pr(1) コマンドが使用できない場合には、FreeBSD problem reports メーリングリスト へメールを送り、 誰か代りにバグ報告を送付してもらうようたずねてください。

良い障害報告を書く方法についてはこの文書をご覧ください。


2.2. 文書の変更

文書の変更は FreeBSD documentation project メーリングリスト が監督しています。 完全な説明は、FreeBSD ドキュメンテーションプロジェクト入門をご覧ください。 バグ報告と一般的な論評 に記述されているように send-pr(1) コマンドを使用して、提案や変更 (どんな些細なものでも歓迎します!) を送ってください。


2.3. 現存のソースコードの変更

現存のソースコードへの追加または変更は、 いくらかトリッキーな仕事であり、FreeBSD 開発の現状にあなたがどれだけ通じているかに大きく依存します。 “FreeBSD-CURRENT” として知られる FreeBSD の特別な継続的リリースがあります。FreeBSD-CURRENT は開発者の積極的な活動の便宜のために、 色々な方法で利用可能になっています。FreeBSD-CURRENT の入手と使用方法についての詳しい情報についてはFreeBSD ハンドブック を参照してください。

古いソースをもとに作業すると、 残念ながらあなたの変更が時として時代遅れもしくは大きく異なるものになってしまって、 FreeBSD に再統合するのは困難になる恐れがあります。 システムの現状に関する議論がおこなわれている FreeBSD announcements メーリングリストFreeBSD-CURRENT メーリングリスト へ参加すれば、この可能性を最小限にできます。

十分新しいソースを変更のベースにできることが確実になったと仮定して、 次のステップは FreeBSD の保守担当者へ送る差分ファイルの生成です。これは diff(1) コマンドを使用しておこないます。

差分ファイルの提出において好ましい diff(1) の形式は、 diff -u により生成される unified diff 形式です。

% diff -u oldfile newfile

または、

% diff -u -r -N olddir newdir

で、指定されたソースファイルまたはディレクトリ階層に対する unified diff 形式の差分が生成されます。

詳しい説明は diff(1) を参照してください。

差分ファイル (patch(1) コマンドでテストできます) を作ったら、それらを FreeBSD に含めてもらうようメールで送ってください。バグ報告と一般的な論評 に記述されているように send-pr(1) コマンドを使用してください。差分ファイルだけを FreeBSD technical discussions メーリングリスト へ送ってはいけません。見過ごされてしまうでしょう。 あなたの提案は大歓迎です (これはボランティアのプロジェクトです!)。 私たちは多忙なのですぐに取りかかれないかもしれませんが、 それまで PR データベースに残っているでしょう。 報告の概要に [PATCH] と書いてあなたの提案を表明してください。

あなたがそうした方がいいと思う場合 (たとえば、 ファイルの追加、削除または名称変更など)、変更を tar ファイルにまとめ、uuencode(1) プログラムにかけてください。shar(1) アーカイブも歓迎します。

たとえば、再配布に適用される著作権の問題に自信がないといった、 あなたの変更が微妙な性質のものである可能性があれば、 send-pr(1) で提出するよりむしろ直接 FreeBSD core team へ送ってください。FreeBSD core team 宛のメールは、 日々の仕事のかなりの割合を FreeBSD に割いている人たちの、 より小さなグループに届きます。 このグループもまたとても忙しいことに注意して、 本当に必要な場合だけコアチームにメールを送るようにしてください。

コーディングスタイルに関して intro(9) および style(9) を参照してください。コードを提出する前には、 少なくともこの情報を意識しておいてくださるようお願いします。


2.4. 新たなコードやきわめて付加価値の高いパッケージ

大きな分量の作業成果の貢献や、重要な新しい機能を FreeBSD に追加する場合には、大抵、変更点を tar ファイルにまとめて uuencode して送るか、ウェブサイトや FTP サイトへアップロードしてアクセスできるようにしなければなりません。 web や FTP サイトが利用できなければ、適切な FreeBSD のメーリングリストで誰かその変更をおくサイトを提供してくれるよう頼んでください。

大量のコードを扱っている時は、 常に著作権に関する微妙な問題が出てきます。 FreeBSD に含めるコードの著作権として受け入れることができるのは、 以下の二つです。

  1. BSD コピーライト。 このコピーライトは “権利に縛られない” 性格と商用企業にとって一般的な魅力をもつために最も好まれます。 FreeBSD プロジェクトは商用利用を阻んだりせず、何かを FreeBSD へ投資する気になった商業関係者による参加を積極的に奨励します。

  2. GNU一般公有使用許諾、または “GPL”。 このライセンスはコードを商用目的に使用する場合に余分な努力が求められるため、 私たちにあまり評判が良いというわけではありません。しかし、 私たちは既に GPL 下の高品質なコード (コンパイラ、アセンブラ、テキストフォーマッタ等) の提供を受けており、私たちは現在それを必要としています。そのため、 このライセンスによる新たな貢献を拒絶するというのは愚かなことでしょう。GPL 下のコードはソースツリーの別の部分、現在のところ /sys/gnu/usr/src/gnu に入っています。 そのため、GPL が問題となるような人は、 誰でも簡単にそれとわかるようになっています。

これ以外のタイプの著作権による寄贈は、FreeBSD へ含めることを考慮する前に注意深いレビューを受けなければなりません。 特に限定的な商用の著作権が適用される寄贈は一般に拒否されます。しかし、 作者が独自の経路でそのような変更を配布することは常に奨励されています。

あなたの作品に “BSD スタイル” の著作権を付けるには、 保護したいソースコードファイルすべての一番最初に以下のテキストを入れて、 %% の間を適切な情報に置き換えてください。

Copyright (c) %%適切な年%%
	%%あなたの名前%%, %%あなたの州%%  %%郵便番号%%.
      All rights reserved.

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:
1. Redistributions of source code must retain the above copyright
   notice, this list of conditions and the following disclaimer as
   the first lines of this file unmodified.
2. Redistributions in binary form must reproduce the above copyright
   notice, this list of conditions and the following disclaimer in the
   documentation and/or other materials provided with the distribution.

THIS SOFTWARE IS PROVIDED BY %%あなたの名前%% ``AS IS'' AND ANY EXPRESS OR
IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
IN NO EVENT SHALL %%あなたの名前%% BE LIABLE FOR ANY DIRECT, INDIRECT,
INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

        $FreeBSD$

便宜をはかるため、 このテキストのコピーは次の場所に置いてあります。 /usr/share/examples/etc/bsd-style-copyright

訳注: 以下は神田敏広氏より寄贈された bsd-style-copyright の日本語訳です。 ソースファイルに含めるものは原文の方であることに注意してご利用ください。 また、原文との間に趣旨の差異が生じた場合、 原文の内容が FreeBSD プロジェクトの意思であるものとします。


Copyright (C) [年]
     [あなたの名前]  All rights reserved.

ソースとバイナリ形式の再配布および使用は、変更の有無にかかわらず以下の
条件を満たす場合に限り許可される:
1. ソースコードの再配布は、上記の著作権表示・この条件のリスト・下記の
   否認声明文を保持しなければならない。

2. バイナリ形式の再配布は上記の著作権表示・この条件のリスト・下記の
   否認声明文を、配布物と共に提供される文書および/または他の資料の中に
   含めなければならない。

(訳注:ここから「否認声明文」です)

このソフトウェアは[あなたの名前]および貢献者によって ``あるがままの状態''
で提供され、商品性と特定の目的に対する適合性についての暗黙の保証に留ま
らず、いかなる明示および暗黙の保証を認めない。[あなたの名前]および貢献
者は、あらゆる直接的・間接的・偶発的・特殊的・典型的・必然的な損害 (代
替製品または代替サービスの獲得費; 効用・データ・利益の喪失; または業務
中断を含み、またそれだけに留まらない損害) に対して、たとえどのようにし
て生じたとしても、そしてこのソフトウェアの使用によってどのようにであれ
生じる、契約上であろうと、厳密な責任内であろうと、あるいは不正行為 (過
失やそうでない場合を含む) における場合であろうとも、いかなる責任論上も、
たとえそのような損害の可能性が予見されていたとしても、一切の責任を持た
ない。

翻訳: 神田敏広
御協力 (五十音順・敬称略):
  池田研二、内川 喜章、藤村 英治、むらたしゅういちろう
  杢野 雅一、横田@宇都宮
     

2.5. 金銭、ハードウェアまたはインターネットアクセス

私たちは FreeBSD プロジェクトの目的を進めるための寄付を常に喜んで受け入れています。 私たちのようなボランティア活動では、 ちょっとしたことが大いに役立つのです! また一般的に、私たちは自前で周辺機器を買う資金が不足しているため、 周辺機器のサポートを充実させるのにハードウェアの寄付はとても重要です。


2.5.1. 資金の寄付

The FreeBSD Foundation は、 FreeBSD プロジェクトの目標を推進するために設立された、 非営利の、税金を免除された財団です。501(c)3 に適合する団体として、 Foundation はアメリカ合衆国連邦所得税ならびに コロラド州所得税を一般に免除されています。免税団体への寄付は、 多くの場合連邦政府の課税対象所得から控除できます。

寄付は小切手で以下に送ってください。


    The FreeBSD Foundation
    7321 Brockway Dr.
    Boulder,
    CO 80303
    USA
  



また、寄付の受け付けを PayPal を通じて web 経由でできるようになりました。 寄付をするには、The FreeBSD Foundation の web サイトをぜひご覧ください。

The FreeBSD Foundation に関するこれ以上の情報は The FreeBSD Foundation -- an Introduction を見てください。 Foundation への email での連絡は へどうぞ。


2.5.2. ハードウェアの寄贈

FreeBSD プロジェクトは適切な使い道のあるハードウェアの寄付を喜んで受け入れています。 ハードウェアを寄贈しようとしているなら、 寄贈品受付事務局に連絡してください。


本文書、および他の文書は ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/ からダウンロードできます。

FreeBSD に関する質問がある場合には、ドキュメント を読んだ上で <[email protected]> まで (英語で) 連絡してください。
本文書に関する質問については、<[email protected]> まで電子メールを (英語で) 送ってください。