iscsitarget 0.4.15をカーネル2.6.24用にビルドする
Linuxカーネル 2.6.22, 2.6.23, 2.6.24 で行われたSCSI周りの変更でそれぞれアオリを受け毎回ビルドできなくなってしまったかわいそうな iscsitarget なのであった。そのせいかどうか知らないが、Portageのメンテナもやる気なさそう。
というわけで 2.6.24で iscsitargetをビルド出来るように自分に頑張ってみた(だって、これがないとうちの Macは TimeMachineできないのだよ)。幸い、コンパイルエラーとなる部分はiSCSIサービスを提供するためのカーネルモジュール部分 (iscsi_trgt.ko)に集中している。
最初は自分でコンパイルエラーとカーネルヘッダファイルを追いかけて修正を進めていたのだが、処理の意味を理解していないままの機械的修正では行き詰まってしまい何とかなるまいかと iscsitarget-develメーリングリストを確認したところ、数日前に 2.6.24用パッチが投稿されていたのを発見する。オーノー。無駄な労力を払いましたか?
がーしかし。これは trunk用のパッチなので、リリースされてるバージョン(iscsitarget-0.4.5)のソースツリーにそのままでは使えないのである。仕方ないのでひたすら trunkと 0.4.5をdiffしつつ 0.4.5用に作成しなおしたパッチがこれ。努力の結晶。多分こんなもん俺しか使わないけどね。っていうか Portageのメンテナがやる気になるまでの間しか価値ないけどね。
iscsitarget-0.4.15-kernel.2.6.24.patch
注:無保証!!うちの環境でしかテストしていない。
・・・2.6.25でまたコンパイル出来なくなるってオチも無しでお願いしたいところ。
(2008-3-1追記)
Portageのほうにパッチが追加され、解決した模様。
下記は今後似たような状況が起こったときのためにメモとして残しておく。
---ここから
Gentooユーザーのために、これを ebuildにくっつけて emergeする方法をメモしておく。多分そういう人少ないけど。
ebuildの fileディレクトリにこのパッチを入れ、ebuildファイルの src_unpack() 内に
epatch ${FILESDIR}/${PN}-0.4.15-kernel.2.6.24.patch
を挿入する。
ebuildファイルを変更したので、
ebuild iscsitarget-0.4.15-r1.ebuild digest
として digestを更新する。(これをやらないと ebuildファイルが改ざんされてるぞ!とエラーが出て emergeできない)
後は普通に emerge iscsitarget すればよし。unmaskとかは適宜すること。
というわけで 2.6.24で iscsitargetをビルド出来るように自分に頑張ってみた(だって、これがないとうちの Macは TimeMachineできないのだよ)。幸い、コンパイルエラーとなる部分はiSCSIサービスを提供するためのカーネルモジュール部分 (iscsi_trgt.ko)に集中している。
最初は自分でコンパイルエラーとカーネルヘッダファイルを追いかけて修正を進めていたのだが、処理の意味を理解していないままの機械的修正では行き詰まってしまい何とかなるまいかと iscsitarget-develメーリングリストを確認したところ、数日前に 2.6.24用パッチが投稿されていたのを発見する。オーノー。無駄な労力を払いましたか?
がーしかし。これは trunk用のパッチなので、リリースされてるバージョン(iscsitarget-0.4.5)のソースツリーにそのままでは使えないのである。仕方ないのでひたすら trunkと 0.4.5をdiffしつつ 0.4.5用に作成しなおしたパッチがこれ。努力の結晶。多分こんなもん俺しか使わないけどね。っていうか Portageのメンテナがやる気になるまでの間しか価値ないけどね。
iscsitarget-0.4.15-kernel.2.6.24.patch
注:無保証!!うちの環境でしかテストしていない。
・・・2.6.25でまたコンパイル出来なくなるってオチも無しでお願いしたいところ。
(2008-3-1追記)
Portageのほうにパッチが追加され、解決した模様。
下記は今後似たような状況が起こったときのためにメモとして残しておく。
---ここから
Gentooユーザーのために、これを ebuildにくっつけて emergeする方法をメモしておく。多分そういう人少ないけど。
ebuildの fileディレクトリにこのパッチを入れ、ebuildファイルの src_unpack() 内に
epatch ${FILESDIR}/${PN}-0.4.15-kernel.2.6.24.patch
を挿入する。
ebuildファイルを変更したので、
ebuild iscsitarget-0.4.15-r1.ebuild digest
として digestを更新する。(これをやらないと ebuildファイルが改ざんされてるぞ!とエラーが出て emergeできない)
後は普通に emerge iscsitarget すればよし。unmaskとかは適宜すること。
ラベル: Storage

1 件のコメント:
大変助かりました。ありがとうございます。
CentOS5.1/2.6.24使いです。
コメントを投稿
<< ホーム