複数の FreeBSD バージョンのソースを追う2009年03月25日 10時16分07秒

素の FreeBSD だと、/usr/src にソースコードが一式入る。しかし、これだと複数のバージョンを追うのに都合が悪い。7.1-RELEASE を主に使いつつ、8-CURRENT で何が起きているのか様子を見る。7.2-PRERELEASE になったので、試用して影響を見定める等といった事をやりたい。

buildworld と buildkernel の make の記述は、生成物を /usr/obj の下に、realpath を使って配置する。そのため、FreeBSD のソースは任意の場所に置くことが出来る。

/usr/src 以下に、各バージョン毎にソースを置くことも出来る。/usr/src に限る必要は無いのだが、元々そこにあった物なので、それに沿う形で選んだ。


% ls /usr/src/
HEAD            RELENG_7_1      head            release7.1.0
RELENG_7        RELENG_7_2      release6.1.0    stable7

HEAD や RELENG 等の大文字のディレクトリは cvs を用いて取得した。head や release 等の小文字のディレクトリは Subversion を用いて取得した。これは、FreeBSD のプロジェクトの付けたブランチ名やタグ名を基に命名した方が判りやすいと思ったからだ。

各リリースのオブジェクトはこの様に配置される。現時点では、RELENG_7_2 は存在しないのだが、すでに 7.2-PRERELEASE となっているので、そう命名した。


% ls /usr/obj/usr/src/
RELENG_7_1      head            release7.1.0
RELENG_7_2      release6.1.0    stable7

クロスコンパイルをすると、また微妙に違った位置に配置されるのも付け加えておく。

次回