Skip to main content.
Google custom search

NetBSD 開発者ドキュメンテーション: 新ポートを追加する

ここでは、 NetBSDのツリーに新しいポートを追加する際に必要となることがらを、 手短に列挙します。

新しいファイルは cvs import ではなく cvs add を使って追加するようにしてください。 import はベンダー枝に対して使うものですが、 このコードは NetBSD の一部として統合されるものだからです。 また、import すると各ファイルに無用のタグが余計に付いてしまいます。

移植そのものを始める際の手順

新ポート追加に際して必要なことがら

ポートがソースツリーに入った後の重要な仕事

他の関連ドキュメント


移植そのものを始める際の手順

最初にすること (トップ)

  • できるだけたくさんの資料を集めます。その後もさらに資料を集めるよう努めます。 移植対象のプラットフォームのベンダーや、 そのボードで使われている主なチップのベンダーに接触します。多くの場合、 他の OS のソースは (たとえ Linux であっても) 有用な資料となり得ます。
  • 似かよったポートの sys ツリーをコピーします。
  • 別の NetBSD マシンで、クロスコンパイラーの用意をします (同じ CPU のマシンが理想的な場合もありますが、通常は i386 マシンで十分なはずです)。
  • ブートローダーが取り扱えるバイナリーをなんとかして作れるようにします。 移植対象で動く OS がすでにある場合は、 そのやり方を利用するとよいかもしれません。
  • コンソールへの出力 (場合により PROM ドライバーか、シリアルコンソールを使って) ができるスタンドアローンのバイナリーの構築を試みます。 VM に関する作業は必要ありません。
  • メモリーディスク上のルートを使うカーネルを構築します。
  • ディスクやネットワークデバイスに対応させます。NetBSD のソースツリーに MI のドライバーがすでに存在する拡張カードを使うところから始めると、 簡単になるかもしれません。


新ポート追加に際して必要なことがら

CVS の設定 (トップ)

cvs checkout-update-commit 用の環境を設定します。

  • NetBSD CVS HOWTO を読んで、 CVS commit ができる環境を用意します。
  • cvs checkout {htdocs,htutils,doc}

htdocs の変更 (トップ)

www.NetBSD.org に新ポートに関する情報を書いて commit します。もちろん、最初に必要なことは、 htdocs/ports/${MACHINE}/ にポートのページを作ることです。 このページを作って commit するまでは、それ以外の htdocs のファイルの変更を commit してはいけません。FAQ 形式の情報には DocBook/XML 書式を使うと便利です (htdocs のドキュメンテーション をご覧ください)。

  • htdocs/ports/${MACHINE}/ を作り、 htdocs/index.htmlhtdocs/ports/index.xml に、リンクを追加します。 このチェックリストをコピーしておき、済んだ項目を消してゆくとよいでしょう。 ポートのページにロゴや画像を入れたい場合は、 その画像を htdocs ツリーに追加する前に、 (そうする必要があれば) 著作権保持者から許可を得てください。
  • 新ポートに関する詳細情報を htdocs/changes/index.xml に書き加え、 make(1) して HTML ファイルを作り直します。 詳細は htdocs のドキュメンテーション をご覧ください。
  • 以下の各ファイルのテーブルに、新ポートを追加します。
    • htdocs/about/query-pr.xml: 追加したら make(1) して HTML ファイルを作り直します。
    • htutils/cgi-src/gnats/netbsd.def
    • htutils/changes/changes2html
    • htutils/changes/code-changes2rss
    • htutils/changes/cvschanges2html
  • htdocs/developers/features/table に新ポートを追加し、 HTML を作り直します。
  • htdocs/people/port-maintainers.xml にあなたを追加します。

以上の各ファイルの変更は、同時に commit するようにしてください。 何か質問があったら までご連絡ください。 また、以上をもとに更新された html ファイルが公開されてから、 他の web サイトで新ポートの周知をしてください。

GNATS の設定 (トップ)

  • src/gnu/usr.bin/send-pr/categories に新カテゴリーを追加します。
  • GNATS サーバー上に新カテゴリーを作成するよう にメールで依頼します。

メールの変更 (特権が必要) (トップ)

  • port-${MACHINE} メーリングリストを作成します。 にメールで要請してください。
  • 新たに作成された port-${MACHINE} メーリングリストを htdocs/mailinglists/index.xml に追加します。 make(1) して HTML を作り直します。
  • ポートマスター用のエイリアス port-${MACHINE}-maintainer を作成します。
  • ポートマスターを port-masters メーリングリストの参加者に追加します。
  • port-${MACHINE}-maintainer を bug-managers メーリングリストの参加者に追加します。たとえば port-hpcmips-maintainer を bug-managers に追加します。
  • このポートが他のポートと同じ MACHINE_ARCH を共有している場合は、 port-${MACHINE}-maintainerport-${MACHINE_ARCH}-maintainer メーリングリストの参加者に追加します。 たとえば、 port-hpcmips-maintainer を port-mips-maintainer に追加します。

新ポートのスナップショット用 FTP ディレクトリーの作成 (トップ)

  • スナップショットの構築・リリースをおこなうため、 distrib/ 以下にあるポートの仕掛けを更新します。 src/distrib/${MACHINE} は作ってありますか ?
  • スナップショットを作ります。NetBSD 開発者ドキュメンテーション: リリースエンジニアリング をご覧ください。
  • ソースの tarball を作ります。 src/distrib/sets/makesrctars スクリプトを使うと便利です。
  • ftp.NetBSD.org:/pub/NetBSD/arch/${MACHINE}/snapshot/YYYYMMDD/ ディレクトリーを作って、スナップショットをここに置きます。

その他の変更 (トップ)

  • src/doc/CHANGES にエントリーを追加します。
  • src/build.sh にエントリーを追加します。
  • src/tools/mkheaderlist.sh を実行して、 src/tools/headerlist を再生成します。
  • src/gnu/usr.bin/groff/tmac/mdoc.local にエントリーを追加します。
  • src/distrib/notes/common/main にエントリーを追加します。
  • src/share/man/man7/hier.7 にエントリーを追加します。
  • src/sys/arch/README にエントリーを追加します。
  • src/sys/arch/Makefile にエントリーを追加します。
  • src/usr.bin/calendar/calendars/calendar.netbsd にエントリーを追加します。
  • 新ポート用の sup(1) セット (src/sys/arch/${MACHINE}/ 用の current および release コレクションと、 ftp.NetBSD.org:/pub/NetBSD/arch/${MACHINE}/ 用の mirror コレクション) を作成します。 他の開発者たちに教わってください。
  • 新しい ${MACHINE} の tarball を作成できるよう、 tarball 構築スクリプトを更新します。 他の開発者たちに教わってください。
  • へ電子メールを送り、 その告知のことを WWW のニュースのページに書きます。


ポートがソースツリーに入った後の重要な仕事

まだやることがありますよ (トップ)

  • ハードウェアへの対応を続けます。
  • sysinst が動くようにします。
  • 公式リリースを制作します。
  • compat_<original_os> を書きます。
  • 保守をおこないます。 NetBSD ソースツリーの進化にあわせて、 このポートの構築や実行ができるようにします。


他の関連ドキュメント

Valeriy E. Ushakov の論文 (トップ)

Valeriy の、新ポートの移植の 始め方に関連する論文

Frank van der Linden の論文 (トップ)

BSDCon 2002 における Frank van der Linden の論文 Porting NetBSD to the AMD x86-64: a case study in OS portability (AMD x86-64 への NetBSD の移植: OS の移植性に関する事例研究)


Back to NetBSD 開発者ドキュメンテーション