Skip to main content.
Google custom search

NetBSD 開発者ドキュメンテーション: リリースおよびスナップショットの構築とパッケージング

ここからの説明は、NetBSD バージョン 1.5 およびそれ以降のリリースおよび スナップショットの構築に関するものです。ソースツリーからリリースを含む.tgz ファイルのセットを作成するまでに踏む段階をカバーしています。 もちろんスナップショットであることを明確に記すべきですが、この方法でスナップショットも作成できます。

Note

スナップショットをアップロードするとき、 機能一覧 をアップデートし忘れないでください。

NetBSD のリリース方式は release(7) マニュアルページで説明されています。 また、 /usr/share/mk/bsd.README ファイルも有用な資料です。

.tgzファイルは二つの段階を踏んで構築されます。まず初めに、 基本配布物を構築します。次の段階で X Window System の配布ファイルを構築します。 アーキテクチャーによっては、さらに段階を踏んで、インストール用のもの (ブートローダーやブートフロッピーイメージなど)構築する必要があります。 次に挙げる段階は全て、NetBSDソースツリーのルートへたどり着くためには、 `src'に移動するものと仮定しています。

昔のバージョンでは、NetBSD には (合衆国) 国内専用の部分がありました。 これは、合衆国とカナダ以外へは合法的に持ち出すことができなかった DES に基づくコードを含んだ部分です。詳細は NetBSD の暗号コードの輸出についてのページをご覧ください。

リリースを構築し、パッケージ化するステップは以下の通りです。


I. 基本システムの構築 (トップ)

  1. 構築に必要な変数を設定します。以下に挙げる変数を、 環境変数 (優先度最低)、 /etc/mk.conf、または make のコマンドライン (優先度最高) で設定可能です。 以下は、/etc/mk.conf ファイルの例です。
      # ソースツリーの場所。
      BSDSRCDIR=/home/cjs/netbsd/src
      # 構築で作られるオブジェクトファイルの場所。
      BSDOBJDIR=/home/cjs/netbsd/obj
      # これら二つは実際には必要ありません; あとで再構築する際に
      # 楽になります。厳密な定義については /usr/share/mk/bsd.README
      # を参照してください。 src 最上層の Makefile もあわせて参照してください。
      BUILD=1
      UPDATE=1
      # バイナリーのインストール先
      DESTDIR=/usr/home/cjs/netbsd/destdir
      # 実際のリリースファイルが置かれる場所
      RELEASEDIR=/usr/home/cjs/netbsd/release
      

    Note

    src ディレクトリー内のスクリプトのなかには、 DESTDIR を環境変数で設定しておかなければならないものがあります (たとえば checkflist、後述) また、DESTDIR/etc/mk.conf で設定すると、pkgsrc のパッケージ構築で問題が起きる可能性もあります。 DESTDIRRELEASEDIR は、環境変数か make のコマンドラインで設定するのが簡単かつ安全でしょう。
  2. ソースのあるディレクトリーに移動して、リリースを構築します。
      cd src
      make obj
      make release
      
    ここで、いくつかの変数を make のコマンドラインで指定するのもよいかもしれません。 たとえば以下のようにします。
    make DESTDIR=/home/destdir RELEASEDIR=/home/releasedir release
      

II. X の構築 (トップ)

Xのセットを構築しパッケージングする情報は、 上記主要セットと同じです。 X のソースがあるディレクトリーに移動して、以下のようにします。

    make release
  

または、make のコマンドラインで変数を指定する場合は以下のようにします。

  make DESTDIR=/home/destdir RELEASEDIR=/home/release

Note

I および II では、セットリストが最新のものであると仮定することに注意して下さい。 セットリストが最新であるかチェックしたいかもしれません。それぞれ、 `make release' するかわりに以下のようにします。
  cd src
  make obj
  # オブジェクトコードを構築し、インストールする。
  make build
  # 配布物のうち最後のものをインストールします。
  cd src/etc && make distribution
  # xsrc のオブジェクトコードを構築し、インストールする。
  cd xsrc && make build

セットリストが正確であるかチェックし、適切にアップデートして、 セット用のtarファイルを作るために、以下のようにします。

  cd src/distrib/sets
  sh ./checkflist -both
  

必要ならば、ここで src/distrib/sets/lists/*/* ファイルを編集します。

  cd src/etc
  make INSTALL_DONE=1 release
  cd xsrc
  make INSTALL_DONE=1 release

III. インストール用のものの構築 (トップ)

ほとんどのアーキテクチャーでは、インストール用の基本的なものは 上述の I において `make release' で処理されます。ただし、これらの一部には、 src/distrib/arch 以下でアーキテクチャー依存の手順が必要なものがあります。 そのような手順のなかには、この説明でまだ記してないものもあります。 ここでできた成果物は、 (release(7) マニュアルページに列挙されている慣習に従って) $RELEASEDIR 以下に手動で置く必要があります。

CD-ROM 作成用に、リリースの ISO9660 イメージを作るには、 上述の I と II の手順を踏み、また、mkisofs ( sysutils/cdrtools パッケージにあります) をパスの通ったところにインストールしておきます。 それから、

  cd src/etc
  make iso-image
  

とすると、ISO9660 イメージが作られ、 $RELEASEDIR/installation/cdrom に保存されます。

このページには、手を入れる余地がまだ大いにありえます。 このページへのコメントやアップデートは、 へ送ってください。