2001/04/02    Rpm on MacOS X

ようやく学会も終わり日記を書く余裕ができた。さて、世の中は正式版の MacOS X になっているというのに、私はといえばまだ Public Beta でやっている。これは Darwin の Kernel で正式版が起動できるかどうか試すマシンがないから。SysV semaphore が必要なのでカスタムカーネルが必要ということである(ひょっとして正式版に SysV semaphore がサポートされたかも知れないがこれもチェックしようがない。grep semget /mach.sym とかして見れば分かるはずだが、どなたかご存じの方がいたら教えていただきたい)。
そういうわけで、正式版では使えないかも知れないが表題のものを MacOS X PB に移植してみた。

[1] gettextlt-0.10.35

db3 をコンパイルするのに必要なので、まず gettext を入れておく。例によって、config.sub、config.guess、ltconfig、ltmain.sh を Darwin のポートのものと置き換えて後は普通に make する。
$ cd gettext-0.10.35/
$ patch -p1 -s < <somewhere>/gettext-0.10.35-macosx.patch
$ ./configure --prefix=/usr/local --with-included-gettext
$ make
$ su
# mkdir tmp
# make install prefix=`pwd`/tmp/usr/local
# tar -zcvf <somewhere>/gettext-0.10.35-bin.tar.gz -C tmp .
# tar -zxvf <somewhere>/gettext-0.10.35-bin.tar.gz -C /
共有ライブラリー化は面倒なので正式版 MacOS X に移行してから。
 

[2] db-3.2.9

BSD database library の最新版を sleepycat から取ってきてコンパイル。
$ cd db-3.2.9/
$ cd build_unix
$ ../dist/configure --prefix=/usr/local --enable-compat185
$ make
$ su
# mkdir tmp
# make prefiix=`pwd`/tmp/usr/local install
# mkdir -p tmp/usr/local/include/db3
# mv tmp/usr/local/include/*.h tmp/usr/local/include/db3/
# ln -sf db3/db.h  tmp/usrl/local/include/db.h
# tar -zcvf <somewhere>/db-3.2.9-bin.tar.gz -C tmp .
# tar -zxvf <somewhere>/db-3.2.9-bin.tar.gz -C /
これも共有ライブラリー化は後回し。
 

[3] rpm-4.0.2

こちらは rawhide より。こちらにはパッチが必要。私家版パッチをあてた。
$ cd rpm-4.0.2/
$ patch -p1 -s <somewhere>/rpm-4.0.2-db3.patch
$ patch -p1 -s <somewhere>/rpm-4.0.2-macosx.patch
$ RANLIB='ranlib -s' ./configure --prefix=/usr/local
$ make
$ su
# mkdir -p tmp/private/var
# ln -s private/var tmp/var
# make DESTDIR=`pwd`/tmp install
# ln -s rpmpopt-4.0.2 tmp/usr/local/lib/rpm/rpmpopt
# tar -zcvf <somewhere>/rpm-4.0.2-bin.tar.gz -C tmp .
# tar -zxvf <somewhere>/rpm-4.0.2-bin.tar.gz -C /
ここで、db3 パッチは 3.(>0).x 対応。macosx パッチは自分で入れたものだけについて依存関係を見るようにするパッチ。

この状況で、いくつか rpm を作ってインストールしてみた。/etc/mnttab がないと文句を言うが一応動いているようである。実害は今の所なさそうなので問題追求は正式版へ移行後。私のところでは dlcompat、bash、rpm の順で rpm -ivh できた。
 

今までにコンパイルしたもののソースおよびパッチは macosx/src に、またバイナリーの tar ball は macosx/tgz または macosx/darwin.tgz にそれぞれ置いてある。また、MacOS X 用の rpm については SPECSSOURCESSRPMSRPMS にそれぞれ対応するものが置いてある。いつものように使う場合は自己責任で。


Back to Keisuke Fujii's MkLinux/LinuxPPC Life