2009/05/14

Linux kernel version に -dirty が付く理由

ある Linux の kernel を build したところ、version に -dirty という文字列が付加されました。

この Linux ではバイナリ提供されている LKM を insmod する必要があります。LKM は kernel の version 文字列(いわゆる vermagic)が一致しない場合、(普通には)読み込んでくれませんので、この -dirty が問題となりました。

Kernel の Makefile によれば、
config に CONFIG_LOCALVERSION_AUTO が設定されている場合、./scripts/setlocalversion の生成結果が付与される
と書いてあります。

そこでsetlocalversion を読んでみたところ、commit されていない改編 code がある場合、-dirty という文字が付与されることが分かりました。なるほど、確かに実験用 build のつもりだったので commit していないコードがあります。

release version と、少しいじった version を混同しないためにも、この自動付与は大変良いアイディアだな、と思いました。

と、感心しつつ、今回は暫定的に -dirty が付かないよう、setlocalversion をいじって対処してしまいました... (^^;

0 件のコメント:

コメントを投稿