本当はやらなければならないことが山積しているのに、現実逃避でpathfinderというRFC 5280のパス検証に準拠したフリーソフトが公開されたようなので早速試してみた。特徴はこんなとこらしい
・証明書の署名値検証
・名前チェーン検証
・基本制約の検証
・証明書ポリシの検証(含ポリシーマッピング)
・鍵使用法の検証
・OCSPによる失効検証
・ブリッジCAを含むパス検証にも対応しているっぽい
・AIA拡張によるパス構築も対応してるっぽい
・C++で書かれているっぽい。
ソースコードはここ(code.google.com)からダウンロードできるようで、今日の時点でバージョンは1.1.2(2009.09.23版)だった。
ソースコードのみの配布なので、ビルドしないといけない。cygwin環境でやることにする。以下のものが多分必要になる。
・g++
・cmake
インストール先はデフォルトでよいので(cmakeを使ったことないのに)cmake一発してみることにする。
あえなくエラーで敗退。何やらサードパーティーのライブラリとして
・D-Bus
・WvStreams
・OpenSSL (まぁこれはあるけど)
が必要なんだそうだ。
バージョンの指定も無いので仕方なくD-Busのサイトからdbus-1.3.0.zipをダウンロードした。雰囲気的にDebianならバイナリパッケージがありそうだった orz
同様にWvStreamsの公式サイトから辿って、wvstreams-4.6.1.tar.gzを落としてきた。
公式サイトのトップに親切にもビルド法が書いてあるので有難くその通りやる。
で、"./configure"してみたんだけどエラーが、、、
tr1やらboostって何って調べてみるにC++の標準ライブラリの拡張案Technical Report 1の実装のようだ。最近、C++に疎いので全然しらなかった。つ〜〜か、なんでg++には入ってないんだろう、、、老人にはビルドは辛いので是非標準でTR1を実装して頂きたい。
段々、面倒臭くなってきたorz
Boostの公式サイト(www.boost.org)からバージョン1.40.0のアーカイブをダウンロードして(おいおいソースtgzで40MBもあるよ)ビルドしようとしたんですが、cygwinで良く見たらboostパッケージあったよ。有難くパッケージインストールする。cygwinを良く見ましたが、D-BusとWvStreamsはパッケージは無いことを確認した。
WvStreamsはD-Busを使うようなので、D-Busから先にインストールすることにした。
でいけるそうだ。gettextとexpat or libxml-2を必要とするらしい。cygwinのlibxml-2-develパッケージをインストールした。
で、ええいっ、、、っと"./configure"してみるも"./configure"が無いじゃ〜〜〜ん。autoconfなのかな。わからないのでcmakeディレクトリに下りて
してみた。cmakeはうまくいったようだ。で、
う〜〜む、ビルドエラーだ。
cmakeはだめみたいだ。"autoconf"にするか、、、、仕方なく、cygwinのautoconf、automake、libtool(libtoolizeが入っている)のパッケージを追加する。でコンフィグレーション用のスクリプトがあるようなので実行してみる。
MD4に関して警告が出たが無視してしまった。
と出たので、どうやら"./configure"ファイルの生成と実行はうまくいったようだ。
で、エラー。どうやらshared library版をつくるためのオプションが間違っているようだ。libtoolまわりの記述がいけないのかもしれない。面倒なのでstaticだけにしてしまう。
で、
とりあえず、D-Busのビルドは順調に進んでいるように見える、、、と思ったらコケた。多分aclocal.m4、acinclude.m4のマクロが処理できていないっぽい。autoconfから戻るか。
さきほどの"autogen.sh"の実行時の警告では、
と出ていたので、"configure.in"をいじって
とすることにして、再度 "autogen.sh" を実行した。警告は無くなり無事 "configure" が実行されたようだ。(毎回こんなことを書いている。)また、staticライブラリのみにするようconfigureを再実行してビルドする。
う〜むだめだエラーだ〜〜〜。dbus-sysdeps-unix.cがダメっぽい。
D-Busをソースからcygwinにインストールするのは諦めることにする。
たまたま、D-Busをちょっと古いけどcygwinパッケージにして配っているところを発見したのでこれを使ってみることにする。
URLを指定して普通にはセットアップできなかったので、パッケージファイル(.bz2)を手でダウンロードして、
すれば、D-Bus 1.2.16のパッケージはインストールできたのではないかと思う。
長かった、、、orz
WvStreamsのインストールに戻ることにする。
D-Busは1.2.14以上が必要なようだ。D-Busが使えるようになっていることを一応確認した。
相変わらず、D-Busが無く、Boostも無いと怒られたorz
pkg-configがいるみたいだぞ。cygwinのパッケージを追加した。段々、頭きた。相変わらずTR1かBoostでは怒られる。
cygwinのBoostのパッケージのインクルードファイルの場所を見てみたら
これで、ようやく configure はうまく通った(やれやれ)。ビルドしてみる。
あらら、、、再度 configure しちゃってる(泣)。気長に待つことにする。あらら、やっぱりダメだった。
cygwinはUser Thread Contextが実装されていないので"ucontext.h"も無いため、そりゃビルドできないわけだ。
うむむ、残念、今日はこれくらいで、、、
方法が他に見つからないようならcygwinはあきらめて、Debian(Ubuntu)でビルドしてみることにします。
・証明書の署名値検証
・名前チェーン検証
・基本制約の検証
・証明書ポリシの検証(含ポリシーマッピング)
・鍵使用法の検証
・OCSPによる失効検証
・ブリッジCAを含むパス検証にも対応しているっぽい
・AIA拡張によるパス構築も対応してるっぽい
・C++で書かれているっぽい。
ソースコードはここ(code.google.com)からダウンロードできるようで、今日の時点でバージョンは1.1.2(2009.09.23版)だった。
インストール
ソースコードのみの配布なので、ビルドしないといけない。cygwin環境でやることにする。以下のものが多分必要になる。
・g++
・cmake
インストール先はデフォルトでよいので(cmakeを使ったことないのに)cmake一発してみることにする。
% cmake .
あえなくエラーで敗退。何やらサードパーティーのライブラリとして
・D-Bus
・WvStreams
・OpenSSL (まぁこれはあるけど)
が必要なんだそうだ。
バージョンの指定も無いので仕方なくD-Busのサイトからdbus-1.3.0.zipをダウンロードした。雰囲気的にDebianならバイナリパッケージがありそうだった orz
同様にWvStreamsの公式サイトから辿って、wvstreams-4.6.1.tar.gzを落としてきた。
再戦(1):WvStreamsのビルド
公式サイトのトップに親切にもビルド法が書いてあるので有難くその通りやる。
% tar -xzvf wvstreams-4.6.1.tar.gz
% cd wvstreams-4.6.1
% ./configure
% make (as root:)
% make install
で、"./configure"してみたんだけどエラーが、、、
configure: WARNING: DBUS is missing.
configure: WARNING: PAM is missing.
configure: WARNING: Qt is missing.
configure: WARNING: Valgrind is missing.
configure: WARNING: readline is missing.
configure: WARNING: both tr1/functional and boost/function.hpp are missing.
configure: error: Required dependencies missing: boost/function.hpp
tr1やらboostって何って調べてみるにC++の標準ライブラリの拡張案Technical Report 1の実装のようだ。最近、C++に疎いので全然しらなかった。つ〜〜か、なんでg++には入ってないんだろう、、、老人にはビルドは辛いので是非標準でTR1を実装して頂きたい。
段々、面倒臭くなってきたorz
Boostのインストール
Boostの公式サイト(www.boost.org)からバージョン1.40.0のアーカイブをダウンロードして(おいおいソースtgzで40MBもあるよ)ビルドしようとしたんですが、cygwinで良く見たらboostパッケージあったよ。有難くパッケージインストールする。cygwinを良く見ましたが、D-BusとWvStreamsはパッケージは無いことを確認した。
D-Busのインストール
WvStreamsはD-Busを使うようなので、D-Busから先にインストールすることにした。
% ./configure --prefix=/usr
% make
% su make install
でいけるそうだ。gettextとexpat or libxml-2を必要とするらしい。cygwinのlibxml-2-develパッケージをインストールした。
で、ええいっ、、、っと"./configure"してみるも"./configure"が無いじゃ〜〜〜ん。autoconfなのかな。わからないのでcmakeディレクトリに下りて
% cd cmake
% cmake .
してみた。cmakeはうまくいったようだ。で、
% make
う〜〜む、ビルドエラーだ。
cmakeはだめみたいだ。"autoconf"にするか、、、、仕方なく、cygwinのautoconf、automake、libtool(libtoolizeが入っている)のパッケージを追加する。でコンフィグレーション用のスクリプトがあるようなので実行してみる。
% ./autogen.sh
MD4に関して警告が出たが無視してしまった。
Now type 'make' to compile dbus.
と出たので、どうやら"./configure"ファイルの生成と実行はうまくいったようだ。
% make
で、エラー。どうやらshared library版をつくるためのオプションが間違っているようだ。libtoolまわりの記述がいけないのかもしれない。面倒なのでstaticだけにしてしまう。
% ./configure --enable-static --disable-shared
で、
% make >& make.log &
% tail -f make.log
とりあえず、D-Busのビルドは順調に進んでいるように見える、、、と思ったらコケた。多分aclocal.m4、acinclude.m4のマクロが処理できていないっぽい。autoconfから戻るか。
さきほどの"autogen.sh"の実行時の警告では、
libtoolize: Consider adding `AC_CONFIG_MACRO_DIR([m4])' to configure.in and
libtoolize: rerunning libtoolize, to keep the correct libtool macros in-tree.
libtoolize: Consider adding `-I m4' to ACLOCAL_AMFLAGS in Makefile.am.
と出ていたので、"configure.in"をいじって
修正前
AC_INIT(dbus, [dbus_version])
修正後
AC_INIT(dbus, [dbus_version])
AC_CONFIG_MACRO_DIR([m4])
とすることにして、再度 "autogen.sh" を実行した。警告は無くなり無事 "configure" が実行されたようだ。(毎回こんなことを書いている。)また、staticライブラリのみにするようconfigureを再実行してビルドする。
% ./configure --enable-static --disable-shared
% make >& make.log &
% tail -f make.log
う〜むだめだエラーだ〜〜〜。dbus-sysdeps-unix.cがダメっぽい。
D-Busをソースからcygwinにインストールするのは諦めることにする。
たまたま、D-Busをちょっと古いけどcygwinパッケージにして配っているところを発見したのでこれを使ってみることにする。
http://ftp.daum.net/cygwin/release-2/dbus/
URLを指定して普通にはセットアップできなかったので、パッケージファイル(.bz2)を手でダウンロードして、
- dbus-1.2.16-1.tar.bz2
- libdbus1_3-1.2.16-1.tar.bz2
- libdbus1-devel-1.2.16-1.tar.bz2
を /tmp などで
% bunzip2 -dc dbus-1.2.16-1.tar.bz2 | tar xvf -
して、
% cp -r usr /
% cp -r etc/dbus-1 /etc
etc/{postinstall,preremove}を参考に
% mkdir -p /var/lib/dbus
% /usr/bin/dbus-uuidgen --ensure
すれば、D-Bus 1.2.16のパッケージはインストールできたのではないかと思う。
長かった、、、orz
再戦:WvStreamsのインストール
WvStreamsのインストールに戻ることにする。
% ./configure
D-Busは1.2.14以上が必要なようだ。D-Busが使えるようになっていることを一応確認した。
configure: WARNING: DBUS is missing.
configure: WARNING: PAM is missing.
configure: WARNING: Qt is missing.
configure: WARNING: Valgrind is missing.
configure: WARNING: readline is missing.
configure: WARNING: both tr1/functional and boost/function.hpp are missing.
configure: error: Required dependencies missing: boost/function.hpp
相変わらず、D-Busが無く、Boostも無いと怒られたorz
% ./configure --with-dbus --with-openssl
pkg-configがいるみたいだぞ。cygwinのパッケージを追加した。段々、頭きた。相変わらずTR1かBoostでは怒られる。
cygwinのBoostのパッケージのインクルードファイルの場所を見てみたら
/usr/include/boost がないので
% cd /usr/include
% ln -s boost-1_33_1/boost boost
これで、ようやく configure はうまく通った(やれやれ)。ビルドしてみる。
% make >& make.log &
% tail -f make.log
あらら、、、再度 configure しちゃってる(泣)。気長に待つことにする。あらら、やっぱりダメだった。
./include/wvtask.h:27:22: ucontext.h: No such file or directory
./include/wvtask.h:57: error: `ucontext_t' does not name a type
cygwinはUser Thread Contextが実装されていないので"ucontext.h"も無いため、そりゃビルドできないわけだ。
うむむ、残念、今日はこれくらいで、、、
方法が他に見つからないようならcygwinはあきらめて、Debian(Ubuntu)でビルドしてみることにします。