2007/12/03

OpenBSD/Zaurus + Dillo

軽量ウェブブラウザであるDilloをインストールしました。

make から使用時までいろいろな問題があったけど、なんとか満足に動かせるようになりました。

portsからインストールしたものでは日本語サイトで化けてしまったので、日本語表示に対応したものをこちらからもらってきました。

make時の問題
(1) ./configure時にSSLを認識せず、SSL無効になってしまう
(2) fltk-configがみつからない
(3) make時にintlとiconvでエラーになる

使用時の問題
(4) メニューが化ける


(1)の問題についてですが、OpenBSD にはインストール時にOpenSSLはインストールされています。
$ ls /usr/lib/libssl*
/usr/lib/libssl.a /usr/lib/libssl_p.a
/usr/lib/libssl.so.11.0 /usr/lib/libssl_pic.a


config.logには次のようなログが残っていました。

configure:8252: gcc -o conftest -g -O2
-I/usr/local/include -I/usr/local/include
-L/usr/lib -L/usr/local/lib -lintl -liconv
-L/usr/X11R6/lib /usr/local/lib/libintl.a
-L/usr/local/lib conftest.c -lssl
/usr/local/lib/libintl.so.3.0: warning: strcpy() is
almost always misused, please use strlcpy()
/usr/lib/libssl.so.11.0: undefined reference to `BIO_find_type'
>/usr/lib/libssl.so.11.0: undefined reference to `BIO_find_type'
/usr/lib/libssl.so.11.0:
undefined reference to `EVP_enc_null'
/usr/lib/libssl.so.11.0:
undefined reference to `EVP_CIPHER_CTX_init'
/usr/lib/libssl.so.11.0:
undefined reference to `X509_NAME_dup'
/usr/lib/libssl.so.11.0:
undefined reference to `COMP_compress_block'
/usr/lib/libssl.so.11.0:
undefined reference to `EVP_rc2_cbc'
/usr/lib/libssl.so.11.0:
undefined reference to `sk_new_null'
/usr/lib/libssl.so.11.0:
undefined reference to `X509_STORE_get_by_subject'

~省略~

/usr/lib/libssl.so.11.0:
undefined reference to `ERR_load_strings'
/usr/lib/libssl.so.11.0:
undefined reference to `EVP_md2'
/usr/lib/libssl.so.11.0:
undefined reference to `HMAC_CTX_init'
/usr/lib/libssl.so.11.0:
undefined reference to `EVP_get_digestbyname'
collect2: ld returned 1 exit status


gccコマンドの引数に-lsslは指定されていますので、ためしに-lcryptoを加えてみたいと思います。


(2)の問題については。fltk2-configはありますので、configureファイルを編集し、fltk2-configにしてみました。
./configure --help のオプションに次のようなのがあるので大丈夫かなと・・・。
確信はないです。
--disable-dlgui   Disable FLTK2 GUI for downloads



また(3)の問題についてはリンク時に-liconvと-lintlのオプションをつけてみます。


というわけで。次のようにconfigure - make しました。
$ CFLAGS='-I/usr/include -I/usr/local/include 
-I/usr/local/X11R6/include'
LDFLAGS='-L/usr/lib -L/usr/local/lib -L/usr/X11R6/lib
-lcrypto -lssl -liconv -lintl'
./configure --with-libiconv-prefix=/usr/local
--with-libintl-prefix=/usr/local
--enable-ipv6 --enable-ssl --enable-meta-refresh
--disable-threaded-dns
(実際は一行)

configure終了後に次のように表示されました。
Finished configure:
tabs: yes
cookies: yes
anti-alias: yes
ssl: yes
meta refresh: no
meta refresh: yes
efence: no
gprof: no
insure: no
rftl: no
prefix: /usr/local

SSLが認識されたようです。
(2007/12/4 追記)
使っているとなぜかページの移動ができなくなる現象が出てしまい、その時DNS関連らしいエラーが出ていたので--disable-threaded-dnsを追加。
また、--enable-meta-refreshを追加し、必要なさそうなものを削除。
少しましになった気がする。
(挙動は明らかに変わったみたい)
(追記終了)

$ CFLAGS='-I/usr/include -I/usr/local/include 
-I/usr/local/X11R6/include'
LDFLAGS='-L/usr/lib -L/usr/local/lib -L/usr/X11R6/lib
-lcrypto -lssl -liconv -lintl'
make
(実際は一行)

必要ではないものも含まれていると思います。
(多分CFLAGSはいらないと思う)


(4)の問題についてはかなり悩みました。
次の2点が必要なようです。(多分)

・$HOME/.gtkrcを適切に作成
・起動時にLANGを適切に設定


$HOME/.gtkrcには次のように記述しました。
とりあえずエラーはでなくなりましたが、正しいかは分かりません。
style "default"
{
fontset = "-*-fixed-medium-r-*-14-*-*-*-*-*-jisx0208.1983-0,\
-*-fixed-medium-r-*-14-*-*-*-*-*-jisx0201.1976-0,\
-*-fixed-medium-r-*-14-*-*-*-*-*-iso8859-1,\
-*-fixed-medium-r-*-14-*-*-*-*-*-*-*,\
-*-r-*-14-*,\
-*-r-*-13-*,\
-*-r-*-"

}
class "GtkWidget" style "default"


さらに起動は次のように行いました。
$ LANG=ja_JP.UTF-8 dillo

毎回LANGの指定をするのは面倒なので、シェルのエイリアスに次のように登録しました。
alias dillo='LANG=ja_JP.UTF-8 dillo'



とりあえずこれで問題なく使えるようになりました。


ちなみにこの文章はOpenBSD/Zaurus で書いていますが、Dilloではなくw3mで書いています。