NetBSDソースセットのビルド

ダウンロード

以下のスクリプトを書き、実行する。

#!/bin/sh
URL="http://ftp.jp.netbsd.org/pub/NetBSD/NetBSD-7.1/source/sets"
wget "$URL/gnusrc.tgz"
wget "$URL/sharesrc.tgz"
wget "$URL/syssrc.tgz"
wget "$URL/src.tgz"
wget "$URL/xsrc.tgz"
tar zxf gnusrc.tgz
tar zxf sharesrc.tgz
tar zxf syssrc.tgz
tar zxf src.tgz
tar zxf xsrc.tgz

ここでは、以下のようなディレクトリ階層で話をすすめる。

$HOME/
    src/
        netbsd/
            gnusrc.tgz
            sharesrc.tgz
            ...snip...
            usr/
                src/
                    build.sh
                    ...snip...
                obj/
                tools/

build.shを実行するには $HOME/src/netbsd/usr/src へ移動すればよい。

事前準備

NetBSD

インストールの時点でFull Installationしていれば、なし。

Ubuntu

はじめにgccとzlib1g-devパッケージをインストールする(必須)。

$ sudo apt install gcc-7 zlib1g-dev

build.shを実行する

amd64バイナリをビルドするには以下のようにbuild.shを実行する。はじめにtoolsを作る。

$ ./build.sh -U -O ../obj -T ../tools -m amd64 tools
...
===> Tools built to /home/uki/src/netbsd/usr/src/../tools
===> build.sh ended:      Sun Dec 10 11:24:31 JST 2017
===> Summary of results:
build.sh command:    ./build.sh -U -O ../obj/ -T ../tools/ -m amd64 tools
build.sh started:    Sun Dec 10 11:14:24 JST 2017
NetBSD version:      7.1
MACHINE:             amd64
MACHINE_ARCH:        x86_64
Build platform:      Linux 4.13.0-19-generic x86_64
HOST_SH:             /bin/sh
MAKECONF file:       /etc/mk.conf (File not found)
TOOLDIR path:        /home/uki/src/netbsd/usr/src/../tools
DESTDIR path:        /home/uki/src/netbsd/usr/src/../obj/destdir.amd64
RELEASEDIR path:     /home/uki/src/netbsd/usr/src/../obj/releasedir
Updated makewrapper: /home/uki/src/netbsd/usr/src/../tools/bin/nbmake-amd64
Tools built to /home/uki/src/netbsd/src/../tools
build.sh ended:      Sun Dec 10 11:24:31 JST 2017
===> .

次にリリース用のバイナリを作る。

$ ./build.sh -U -O ../obj -T ../tools -m amd64 release
===> Successful make release
===> build.sh ended:      Sun Dec 10 13:40:39 JST 2017
===> Summary of results:
build.sh command:    ./build.sh -U -O ../obj/ -T ../tools/ -m amd64 release
build.sh started:    Sun Dec 10 11:38:09 JST 2017
NetBSD version:      7.1
MACHINE:             amd64
MACHINE_ARCH:        x86_64
Build platform:      Linux 4.13.0-19-generic x86_64
HOST_SH:             /bin/sh
MAKECONF file:       /etc/mk.conf (File not found)
TOOLDIR path:        /home/uki/src/netbsd/usr/src/../tools
DESTDIR path:        /home/uki/src/netbsd/usr/src/../obj/destdir.amd64
RELEASEDIR path:     /home/uki/src/netbsd/usr/src/../obj/releasedir
Updated makewrapper: /home/uki/src/netbsd/usr/src/../tools/bin/nbmake-amd64
Successful make release
build.sh ended:      Sun Dec 10 13:40:39 JST 2017
===> .

これでビルドは完了した。core i5、RAM16GBのマシンだとtoolsに10分、releaseに2時間かかる。