ちょっと仕事の都合で必要になったので。
GnuPG-1.2.2を、FreeBSD-2.2.1に入れる。バージョン番号がシンメトリーだな。
./configure && makeしたら、make中にいきなりこける。
gcc -DHAVE_CONFIG_H -I. -I. -I.. -I.. -I../include -g -O2 -Wall -c _mpih-lshift.s _mpih-lshift.s: Assembler messages: _mpih-lshift.s:127: Error: operands given don't match any known 386 instruction _mpih-lshift.s:137: Error: operands given don't match any known 386 instruction _mpih-lshift.s:141: Error: operands given don't match any known 386 instruction
時間もないので、メッセージそのままを検索に掛けたら、asmが問題だと書いてある ページに到達。
./configure --disable-asm
とすると、その部分のコンパイルは通ったが、さらに先でCore Dumpしてしまう。
Making all in mpi Segmentation fault - core dumped *** Error code 1 Stop. *** Error code 1 Stop.
そう言えばGNU makeを使えというWarningがあったので、gmakeでやり直し。
mpih-mul.c:94: Undefined symbol `_mpihelp_mul_1' referenced from text segment mpih-mul.c:106: Undefined symbol `_mpihelp_add_n' referenced from text segment
MPI関連のエラーが頻発。Core Dumpしたところと同じなので、 一旦gmake cleanしてからやりなおし。今度は通った。やっぱり横着はいかんね。
次。make check。じゃなくてgmake check。
50のテスト項目のうち2つfailしたが、多分大丈夫だろうとタカを括ってmake install
ってまたやってしまった。makeがcore dumped。gmake installをやりなおし。今度は ちゃんと通った。
次は鍵の作成。
gpg --gen-key
とするだけだが、ここでハマる。
十分な長さの乱数が得られません。OSがもっと乱雑さを収集 できるよう、何かしてください! (あと142バイトいります)
と言われて止まってしまうのだ。要するにハードウェア割り込みを沢山かければ 良いのだろうということで、NFSで馬鹿でかいファイル(/usrのダンプ)をコピーし ながらそのファイルに複雑なgrepをかけ、しかもコンソールの(ローカルのキーボード だとキャラクタ送るだけなんだよな、良く考えると)キーボードをがちゃがちゃやって やっと通った。結構贅沢な乱数発生方法だな。とりあえず鍵もできた。
次。GnuPG.pm。0.09だっけ。
perl Makefile.PL && make && make test
make test中にこける。
Bareword "POSIX::_SC_OPEN_MAX" not allowed while "strict subs" in use at blib/lib/GnuPG.pm line 267.
なんじゃそりゃ。とりあえず、ソースコードを見て該当部分をいきなり 書き換える。
my $max_fd = POSIX::sysconf( POSIX::_SC_OPEN_MAX ) || 256;
を、
my $max_fd = POSIX::sysconf("POSIX::_SC_OPEN_MAX") || 256;
に。するといきなり動いた。やっぱPerlはこういうところが単純でいいな。
で、鍵のインポートができない・・・。
#!/usr/bin/perl use GnuPG; $pg = new GnuPG; $pg->import_keys(keys => "key.pub");
というプログラムを動かしてみたが、
protocol error expected IMPORT_RES got IMPORT_OK
というエラーがでる。これ、マニュアル見るとIMPORT_OKは既にインポート済みの 鍵を読み込もうとしたときに出るらしい。確かに自分の公開鍵を読み込ませようと してた。馬鹿ですね。でもそんな物までcroakしなくてもいいのに……。
っていうか既にインストールの項に書く事じゃなくなってきてる気がする。