[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[debian-users:05717] perl_5.004.04 & inn_1.7.2



Debian入れてもコンパイル三昧な毎日です。(^_^;;)

今回は、inn_1.7.2にperl_5.004.04を組み込んだときに、いかに
ごまかしたか、という内容です。

新しいニュース・サーバ用のマシンを手に入れたので、hamm環境入れて、
カーネルに2.1.94+e2comprを採用(おもしろそうだから)、e2fsprogsにも
パッチをあてて…コンパイルに四苦八苦。“くいっく八苦”でごまかして、
次はINN…というところでまたトラブルにあいました。

INNの現在のバージョンではPerlを組み込んでフィルタリング(おもに
SPAM対策)ができるのですが、バイナリパッケージのほうはこれが有効に
なっていません。で、さっそくソースを持ってきて、debian/config.data.debian
を修正、コンパイルしたのですが、lib/perl.cのとこでエラーが発生しました。

================
cd lib ; make  install ; cd ..
make[2]: Entering directory `/home/kise/inn/inn-1.7.2/lib'
gcc -I../include -O2 -fomit-frame-pointer -I/usr/lib/perl5/i386-linux/5.004/CORE   -c perl.c -o perl.o
In file included from /usr/lib/perl5/i386-linux/5.004/CORE/perl.h:1012,
                 from perl.c:29:
/usr/lib/perl5/i386-linux/5.004/CORE/cop.h:205: parse error before `bool'
/usr/lib/perl5/i386-linux/5.004/CORE/cop.h:205: warning: no semicolon at end of struct or union
(以下略)
================

問題のcop.hの205行目は、構造体の定義の部分で、
    bool        sbu_once;
となっています。

で、ちょっと調べたところ、どうも“bool”が未定義のようです。(?_?)
(デフォルトで定義されてないの?)

で、とりあえず、lib/perl.cの最初のほうで、
typedef int bool;
と書いてごまかしました。あと、
innd/cc.c
innd/perl.c
nnrpd/perl.c
でも同様の修正をしました。根本なところで修正すべきかもしれません。

実はまだコンパイル中なのです。“crypt”が未定義だとかいってきてる…。
libc6だからかな。“-lperl”のあとに“-lcrypt”がくるように修正、と。


環境は以下のとおり。hamm環境です。
カーネル:	2.1.94 + e2compr-0.4.6
libc6:		2.0.7pre3-1 (slinkにある)
gcc:		2.7.2.3-4
perl:		5.004.04-5
inn:		1.7.2-3

あ、2.1.98用のe2compr-0.4.6が出てる…。
-- 
喜瀬“冬猫”浩@南国沖縄