NetBSDカーネル開発・テスト環境を構築するの記事にもあるように、NetBSDカーネルソースコードをダウンロードする機会は多々あります。
NetBSDのソースコードはhttp://ftp.jaist.ac.jp/pub/NetBSD/から取得可能で、例えばNetBSD-7.0.2のソースアーカイブのURLは以下になります。
しかし、その都度バージョンとURLを調べてファイルをダウンロードするのもなかなか面倒です。そこでNetBSDカーネルソースコードを取得する簡単なシェルスクリプトを作成してみました。
NetBSDカーネルソースコードを取得するスクリプト
スクリプトは以下に置いてあります。が、現状では NetBSD環境のみでの動作 となります...。
スクリプトのセットアップ
$ curl -k -s -O https://gist.githubusercontent.com/furandon-pig/32f95165c990a8de1b4c2099b88cab66/raw/bda96f53587efa3e3b45571f62520e0f1adb15de/get_nbsd_kernsrc.sh
$ file get_nbsd_kernsrc.sh
get_nbsd_kernsrc.sh: POSIX shell script, ASCII text executable
$ chmod +x get_nbsd_kernsrc.sh
使ってみる
get_nbsd_kernsrc.sh list
でダウンロード可能なNetBSDソースコードの一覧が表示されます。
$ ./get_nbsd_kernsrc.sh list
Available NetBSD source archive.
* NetBSD-6.0.1
...
* NetBSD-6.1
* NetBSD-7.0.1
* NetBSD-7.0.2
* NetBSD-7.0
...
get_nbsd_kernsrc.sh download <version>
でソースアーカイブをダウンロードします。
以下の例ではNetBSD-7.0.2
のソースアーカイブをダウンロードしています。
$ ./get_nbsd_kernsrc.sh download NetBSD-7.0.2
[1/6]download MD5
[2/6]download SHA512
[3/6]download sharesrc.tgz
[4/6]download syssrc.tgz
...
get_nbsd_kernsrc.sh checksum
でファイルのチェックサム(SHA-512)を確認できます。
$ ./get_nbsd_kernsrc.sh checksum
[ OK ] gnusrc.tgz
[ OK ] sharesrc.tgz
[ OK ] src.tgz
[ OK ] syssrc.tgz
あとはツールチェインの構築→カーネルのビルドでカーネル開発環境まで準備できます。
まとめ
毎回カーネルソースコードのファイルをちまちまとダウンロードしていたのですが、スクリプトの作成によりだいぶ楽になりました(もっと早くにこうしておけば良かった気もします)。
Linuxでも頻繁にカーネルソースコードを取得したりするので、こちらも同様のスクリプトを作成しておきたいところです。