--- title: FreeBSD への貢献 authors: - author: Hubbard Jordan [FAMILY Given] trademarks: ["freebsd", "ieee", "general"] --- = FreeBSD への貢献 :doctype: article :toc: macro :toclevels: 1 :icons: font :sectnums: :sectnumlevels: 6 :source-highlighter: rouge :experimental: :images-path: articles/contributing/ ifdef::env-beastie[] ifdef::backend-html5[] include::shared/authors.adoc[] include::shared/mirrors.adoc[] include::shared/releases.adoc[] include::shared/attributes/attributes-{{% lang %}}.adoc[] include::shared/{{% lang %}}/teams.adoc[] include::shared/{{% lang %}}/mailing-lists.adoc[] include::shared/{{% lang %}}/urls.adoc[] :imagesdir: ../../../images/{images-path} endif::[] ifdef::backend-pdf,backend-epub3[] include::../../../../shared/asciidoctor.adoc[] endif::[] endif::[] ifndef::env-beastie[] include::../../../../../shared/asciidoctor.adoc[] endif::[] [.abstract-title] 概要 この文書は、個人や団体が FreeBSD プロジェクトに貢献するためのいくつかの方法について説明しています。 ''' toc::[] あなたも FreeBSD のために貢献したくなりましたか? 素晴らしい! FreeBSD は生き残るためにユーザベースの貢献に__頼っています__。 あなたの貢献は感謝されるだけではなく、FreeBSD が成長し続けるために極めて重要なものなのです! 一部の人達が発言しているのとは反対に、 貢献を受け付けてもらうために腕利きのプログラマーになるとか FreeBSD コアチームの人と親友になる必要はありません。 多くのそして益々増加する世界中の貢献者達が FreeBSD を開発しており、 彼らの年齢、専門技術分野は多岐に渡っています。 手の空いている人よりも成すべき仕事の方が多く、 お手伝いはいつでも歓迎されています。 FreeBSD プロジェクトはカーネルや散在しているユーティリティよりも、 オペレーティングシステム環境に対して責任を持っています。 私たちの [.filename]#TODO# リストには文書整備、ベータテスト、 インストーラや専門化されたタイプのカーネル開発の好例を紹介するなど非常に広い範囲の作業があります。 あなたの技能レベルや分野に関わらず、 プロジェクトを支援できることが必ず何かあります! FreeBSD 関連の事業に携わる商業団体が私たちにコンタクトすることも歓迎しています。 あなたの製品を (FreeBSD 上で) 動作させるには、 特別な拡張が必要ではありませんか? あまりにも風変わりな要求でなければ、 それを受け入れる用意が私たちにあるとわかるはずです。 付加価値のある製品ですか? 私たちに知らせてください! 多分私たちは、 ある面において共同して作業をすることができるでしょう。 フリーソフトウェア界は、 ソフトウェアがどのように開発され、 販売され、保守されていくかについて、既存の仮説に挑戦しています。 少なくとももう一度考慮してみることを私たちは強くお奨めします。 [[contrib-what]] == 何が必要? 次の課題とサブプロジェクトの一覧は、色々な [.filename]#TODO# リストとユーザからの要求を合わせたものです。 [[non-programmer-tasks]] === 進行中の非プログラマ向けの課題 FreeBSD に関わっている中には、プログラマではない人がたくさんいます。 プロジェクトには、文書を書く人、Web デザイナ、サポートを行う人がいます。 貢献するのに必要なのは、時間の投資と学ぶ意欲です。 . 定期的に FAQ とハンドブックを通して読んでみてください。 もしまずい説明や古い事柄や完全に間違っていることなどがあれば私達に教えてください。 さらに良いのは我々に修正案を送ることです (Docbook は学ぶのにそれほど難しくありませんが、 プレインテキストでも問題はありません)。 . FreeBSD の文書を自分の母国語に翻訳するのを手伝ってください。 文書がすでに存在すれば、もっと文書を翻訳したり、 その翻訳が最新の状態かどうか確認するのを手伝うことができます。 まず FreeBSD ドキュメンテーションプロジェクト入門の extref:{fdp-primer}[翻訳に関する FAQ (よくある質問とその答え), translations] を一読してください。 とはいっても、 そうすることによってあなたがすべての FreeBSD 文書の翻訳に携わるようになるわけではないですからね。 - ボランティアとして、 多少に関わらず、自分がやろうと思うだけやってください。 いったん誰かが翻訳を始めたら、 たくさんの人達がいつだって協力してくれますから。 もし翻訳に費す時間やエネルギーが限られているなら、 まずインストール方法の翻訳からお願いします (訳注: なぜなら、 もっとも必要とされている文書がそれだからです)。 . たまに (もしくは定期的に) {freebsd-questions} を読んでください。 これは、あなたの持っている専門知識を共有したり、 誰かが抱えている問題を解決するのに非常に有効なものになり得ることです。 時にはあなた自身で新しいことを学ぶことさえできるかもしれません。 これらのフォーラムはやるべきことのアイディアの源にもなり得るのです。 [[ongoing-programmer-tasks]] === 進行中のプログラマ向けの課題 このセクションで挙げる課題は膨大な時間の投資または FreeBSD のカーネルに関する深い知識、もしくは両方を必要とします。 しかしながら、"週末ハッカー" に適した立派な課題も数多くあります。 . FreeBSD-CURRENT を運用しており、 状態の良いインターネット接続があるならば、 `current.FreeBSD.org` という一日に一回フルリリースを行っているマシンがあります - 時おり最新のリリースをそこからインストールし、 その過程で何か問題があるなら報告してください。 . {freebsd-bugs} を読んでください。 そこではあなたが建設的なコメントを付けたりテストできるパッチが提供されているような問題があるかもしれません。 もしくはそれらの問題の一つをあなた自身で修正することさえできるかもしれません。 . -CURRENT に正しく当てられるがしばらく経っても (通常は 2, 3 週間) -STABLE に取り込まれてないようなバグフィックスがあるならばコミッターに丁寧に思い出させてください。 . 寄贈ソフトウェアをソースツリーの [.filename]#src/contrib# に移動させてください。 . [.filename]#src/contrib# 以下のコードが最新のものであるか確認してください。 . 警告を詳細に報告するようにしてソースツリー全体 (もしくはその一部) を構築してみてください。 そして警告が出ないようにしてください。 . ports で、`gets()` を使っているとか [.filename]#malloc.h# をインクルードしているなどといった警告が出ないようにしてください。 . もしなんらかの ports に関わっていて、 FreeBSD に固有の変更が必要であれば、 あなたのパッチを作者にフィードバックしてください (次のバージョンが出た時にあなたが楽になります)。 . POSIX(R) のような公式標準の写しを入手してください。 FreeBSD の挙動を標準が要求するものと比較してください。 挙動が異なる場合、 特にそれが仕様の取るに足らなかったり分かりにくい細かい部分なら、 障害報告を提出してください。できればどう修正すべきか明らかにして、 障害報告にパッチをつけてください。標準が間違っていると感じたら、 標準化団体にその疑問を糺してください。 . この一覧に追加する課題を提案してください! === 障害報告 (PR; Problem Report) データベースにおける作業 https://bugs.FreeBSD.org/search/[FreeBSD 障害報告一覧]では、現在問題となっている障害報告と、 FreeBSD の利用者によって提出された改良の要望すべての一覧を公開しています。 障害報告データベースには、 プログラマ向けと非プログラマ向けの課題が共に含まれています。 open 状態の障害報告を見て、興味を引くものがあるか確かめてください。 なかには、障害報告に対する修正が適切なものであるかどうか単にチェックするだけのとても簡単な作業もあるでしょうし、 ずっと複雑なものや、修正が含まれてすらいないものもあるでしょう。 まず、まだ誰にも割り当てられていない障害報告から作業を始めてください。 もし、誰か他の人に割り当てが決まっているけれども自分が作業可能だ、 という障害報告があれば、作業ができるかどうか、 割り当てられている人に電子メールで問い合わせてください。- 既にテスト用パッチが用意されているかもしれませんし、 より進んだ考えに関して議論ができるかもしれません。 === "アイディア"ページの項目 FreeBSD プロジェクトに貢献したい人のために http://wiki.freebsd.org/IdeasPage[ボランティアのための FreeBSD のプロジェクトとアイディア一覧] も用意されています。 この一覧は常に更新され続けており、それぞれのプロジェクトについて、 プログラマと非プログラマ両方に向けた項目があります。 [[contrib-how]] == 貢献の仕方 一般的に、システムへの貢献は次の 5 つのカテゴリの 1 つ以上に分類されます: [[contrib-general]] === バグ報告と一般的な論評 __一般的な__技術的関心事に関するアイデアや提案は {freebsd-hackers} へメールしてください。同様に、このような事柄に興味のある (そして__膨大な__メール! に耐えられる) 人は、 {freebsd-hackers} に参加すると良いでしょう。 このメーリングリストや他のメーリングリストに関する詳しい情報については extref:{handbook}eresources[FreeBSD ハンドブック, eresources-mail] を参照してください。 バグを発見したり変更を送付しようとしている場合は https://bugs.FreeBSD.org/submit/[障害報告提出フォーム] を使用して報告してください。 バグレポートの各項目を埋めるようにしてください。65KB を超えるのでなければ、 レポート中に直接パッチを入れてくださって結構です。 パッチがソースツリーにすぐ適用できるものならば、 報告の概要に `[PATCH]` と書いておいてください。 パッチを入れる場合、カット&ペーストは__しないで__ ください。 カット&ペーストではタブがスペースに展開されてパッチが使い物にならなくなってしまいます。 パッチが 20KB を超える場合は、アップロードをする前に、 それらを (man:gzip[1] や man:bzip2[1] で) 圧縮することを検討してください。 レポートがファイリングされれば、 バグ報告の確認とトラッキング番号をメールで受け取るはずです。 このトラッキング番号を覚えておき、 問題に関する詳細情報を更新できるようにしてください。 良い障害報告を書く方法については extref:{problem-reports}[この文書] をご覧ください。 === 文書の変更 文書の変更は {freebsd-doc} が監督しています。 完全な説明は、extref:{fdp-primer}[ドキュメンテーションプロジェクト入門] をご覧ください。 他の障害報告と同様の方法で、提案や変更 (どんな些細なものでも歓迎します!) を送ってください。 === 現存のソースコードの変更 現存のソースコードへの追加または変更は、 いくらかトリッキーな仕事であり、FreeBSD 開発の現状にあなたがどれだけ通じているかに大きく依存します。 "FreeBSD-CURRENT" として知られる FreeBSD の特別な継続的リリースがあります。FreeBSD-CURRENT は開発者の積極的な活動の便宜のために、 色々な方法で利用可能になっています。FreeBSD-CURRENT の入手と使用方法についての詳しい情報については extref:{handbook}updating-upgrading[FreeBSD ハンドブック, current-stable] を参照してください。 古いソースをもとに作業すると、 残念ながらあなたの変更が時として時代遅れもしくは大きく異なるものになってしまって、 FreeBSD に再統合するのは困難になる恐れがあります。 システムの現状に関する議論がおこなわれている {freebsd-announce} と {freebsd-current} へ参加すれば、この可能性を最小限にできます。 十分新しいソースを変更のベースにできることが確実になったと仮定して、 次のステップは FreeBSD の保守担当者へ送る差分ファイルの生成です。これは man:diff[1] コマンドを使用しておこないます。 差分ファイルの提出において好ましい man:diff[1] の形式は、 `diff -u` により生成される unified diff 形式です。 [source,shell] .... % diff -u oldfile newfile .... または、 [source,shell] .... % diff -u -r -N olddir newdir .... で、指定されたソースファイルまたはディレクトリ階層に対する unified diff 形式の差分が生成されます。 詳しい説明は man:diff[1] を参照してください。 差分ファイル (man:patch[1] コマンドでテストできます) を作ったら、それらを FreeBSD に含めてもらうよう障害報告として提出してください。 差分ファイルだけを {freebsd-hackers} へ __送ってはいけません__。 見過ごされてしまうでしょう。 あなたの提案は大歓迎です (これはボランティアのプロジェクトです!)。 私たちは多忙なのですぐに取りかかれないかもしれませんが、 それまで PR データベースに残っているでしょう。 報告の概要に `[PATCH]` と書いてあなたの提案を表明してください。 あなたがそうした方がいいと思う場合 (たとえば、 ファイルの追加、削除または名称変更など)、変更を `tar` ファイルにまとめてください。man:shar[1] アーカイブも歓迎します。 たとえば、再配布に適用される著作権の問題に自信がないといった、 あなたの変更が微妙な性質のものである可能性があれば、 障害報告で提出するよりむしろ直接 {core} へ送ってください。{core} 宛のメールは、 日々の仕事のかなりの割合を FreeBSD に割いている人たちの、 より小さなグループに届きます。 このグループもまた__とても忙しい__ことに注意して、 本当に必要な場合だけコアチームにメールを送るようにしてください。 コーディングスタイルに関して man:intro[9] および man:style[9] を参照してください。コードを提出する前には、 少なくともこの情報を意識しておいてくださるようお願いします。 === 新たなコードやきわめて付加価値の高いパッケージ 大きな分量の作業成果の貢献や、重要な新しい機能を FreeBSD に追加する場合には、大抵、変更点を tar ファイルにまとめて送るか、ウェブサイトや FTP サイトへアップロードしてアクセスできるようにしなければなりません。 web や FTP サイトが利用できなければ、適切な FreeBSD のメーリングリストで誰かその変更をおくサイトを提供してくれるよう頼んでください。 大量のコードを扱っている時は、 常に著作権に関する微妙な問題が出てきます。 FreeBSD では、BSD または ISC といったフリーソフトウェアライセンスが好まれます。 GPLv2 のようなコピーレフトライセンスも、場合によっては許可されます。 完全なリストが、link:https://www.FreeBSD.org/jp/internal/software-license/[コアチームライセンスポリシ] ページにあります。 === 金銭、ハードウェア 私たちは FreeBSD プロジェクトの目的を進めるための寄付を常に喜んで受け入れています。 私たちのようなボランティア活動では、 ちょっとしたことが大いに役立つのです! また一般的に、私たちは自前で周辺機器を買う資金が不足しているため、 周辺機器のサポートを充実させるのにハードウェアの寄付はとても重要です。 [[donations]] ==== 資金の寄付 The FreeBSD Foundation は、 FreeBSD プロジェクトの目標を推進するために設立された、 非営利の、税金を免除された財団です。501(c)3 に適合する団体として、 Foundation はアメリカ合衆国連邦所得税ならびに コロラド州所得税を一般に免除されています。免税団体への寄付は、 多くの場合連邦政府の課税対象所得から控除できます。 寄付は小切手で以下に送ってください。 [.address] **** The FreeBSD Foundation + 3980 Broadway Street + STE #103-107 + Boulder CO 80304 + USA **** また、寄付の受け付けを PayPal を通じて web 経由でできるようになりました。 寄付をするには、The FreeBSD Foundation の https://www.freebsdfoundation.org[web サイト]をぜひご覧ください。 The FreeBSD Foundation に関するこれ以上の情報は https://people.FreeBSD.org/~jdp/foundation/announcement.html[The FreeBSD Foundation -- an Introduction] を見てください。 Foundation への email での連絡は mailto:bod@FreeBSDFoundation.org[bod@FreeBSDFoundation.org] へどうぞ。 ==== ハードウェアの寄贈 FreeBSD プロジェクトは適切な使い道のあるハードウェアの寄付を喜んで受け入れています。 ハードウェアを寄贈しようとしているなら、 link:https://www.FreeBSD.org/donations/[寄贈品受付事務局]に連絡してください。 [[ideas-contributing]] == 他の分野で貢献するには? この文書で説明されていないような他の別な興味のあることを探していますか? FreeBSD プロジェクトの wiki ページには、 新しい貢献者がどのように始めたらよいかについてのアイディアが書かれています。 https://wiki.freebsd.org/JuniorJobs[Junior Jobs] ページには、FreeBSD を使はじめたばかりの人々や、 興味のあることから手始めにやってみたいと考えている方が興味を持ちそうなプロジェクトの一覧があります。 https://wiki.freebsd.org/IdeasPage[アイディアページ] には、プロジェクトに "あると便利" だったり、 "面白い" 作業の一覧があります。