MozillaのNSSをLionでコンパイルしてみた [プログラミング]
なかなか出来なかったんだけど、とりあえずdylibが出来たので、要点を書いておきます。でも、全然具体的じゃない。具体的にかけるほどきちんと分かってないです。というか、分かりやすくコマンド一発二発でコンパイルできるようにしておいてほしいよなぁ。
あ、ちなみにMac OSX Lion上で作っているので、それ以外の方はあんまりためにならない事請け合いです。でも、似たようなエラーは出るんだろうなぁ。エラー表示でググって来る方がいると思うんだけど、あえて英語に慣れると思って、Mozillaのバグのログとかを見ていくと色々学べると思いますよ。
というか、いちからやって再現させるのが面倒なので、やんないだけなんですけどね(^^;)
それに、新しいバージョンが出たら、そういうエラーは一切消え失せてしまうかもしれないし(いや、それはないな)。
まず、ファイルを取ってくるところからだけど、ここから取ってくるのだと古すぎるので、
http://www.mozilla.org/projects/security/pki/nss/buildnss_31.html
ここのFTPのサーバから取ってくるのが常道っぽいです。多分、Firefoxとかのにも入っているけど、余計なものが多過ぎて、正直いらない苦労を背負うようなものなので、NSSにNSPR付きのものをFTPから取ってくる方が精神安定上、楽。
ftp://ftp.mozilla.org/pub/mozilla.org/security/nss/releases/
コンパイルなんだけど、mozilla/security/nssで、
gmake nss_build_all
とかすればいいと思うんですが、そのままでは通らないようです。引数を付ければいいのだろうけど、build_nspr当たりで転ぶっぽい。
面倒なので、mozilla/nsprpub で./configure && makeあたりをすると普通に作ってくれたと思う。あと、他のところもそうなんだけど、gmake exportと、gmake libsをすると色々キチンと全部やってくれているみたいです。
特にgmake libsをやらないと、作ったライブラリを見られるところにシンボリックリンクとか張ってくれなかったりして、リンクが通らなかったりして頭に来ます。
あと、忘れていけないのは
export USE_64=1
を唱えておく事。嫌な人はいちいちmakeとかする時に、USE_64=1をパラメータに付けてください。
あとは、Makefileがあるところで、makeを唱えておけばいい事があるかもしれないくらいの事。色々しなくていい苦労をしたけど、Lion由来のエラーは少ないはずです。
色々やるのが面倒な人は、MacPortsで、
sudo ports install nss
で/opt からライブラリをかっさらって持ってきた方が話は早いはずです。
やっと、使えそうなサンプルコードが見つかったので、これからgmailにつなげる修行に入ります。ここからが長そうだ。ミニマムコードさえ得てしまえば、後はmailpeeper-tls本体に組み込んで不都合を直すだけですから、ちょっと腰を据えてやってみることにします。
しかし、今度はOpenSSLほど一般的に知られてないライブラリなので、苦労はするだろうなぁ。まぁ、手順を追っていくのはどっちもSSLなので同じだろうし、Thunderbird等で機能的に出来るのが分かっているので、あんまり不安には思っていないです。
あ、ちなみにMac OSX Lion上で作っているので、それ以外の方はあんまりためにならない事請け合いです。でも、似たようなエラーは出るんだろうなぁ。エラー表示でググって来る方がいると思うんだけど、あえて英語に慣れると思って、Mozillaのバグのログとかを見ていくと色々学べると思いますよ。
というか、いちからやって再現させるのが面倒なので、やんないだけなんですけどね(^^;)
それに、新しいバージョンが出たら、そういうエラーは一切消え失せてしまうかもしれないし(いや、それはないな)。
まず、ファイルを取ってくるところからだけど、ここから取ってくるのだと古すぎるので、
http://www.mozilla.org/projects/security/pki/nss/buildnss_31.html
ここのFTPのサーバから取ってくるのが常道っぽいです。多分、Firefoxとかのにも入っているけど、余計なものが多過ぎて、正直いらない苦労を背負うようなものなので、NSSにNSPR付きのものをFTPから取ってくる方が精神安定上、楽。
ftp://ftp.mozilla.org/pub/mozilla.org/security/nss/releases/
コンパイルなんだけど、mozilla/security/nssで、
gmake nss_build_all
とかすればいいと思うんですが、そのままでは通らないようです。引数を付ければいいのだろうけど、build_nspr当たりで転ぶっぽい。
面倒なので、mozilla/nsprpub で./configure && makeあたりをすると普通に作ってくれたと思う。あと、他のところもそうなんだけど、gmake exportと、gmake libsをすると色々キチンと全部やってくれているみたいです。
特にgmake libsをやらないと、作ったライブラリを見られるところにシンボリックリンクとか張ってくれなかったりして、リンクが通らなかったりして頭に来ます。
あと、忘れていけないのは
export USE_64=1
を唱えておく事。嫌な人はいちいちmakeとかする時に、USE_64=1をパラメータに付けてください。
あとは、Makefileがあるところで、makeを唱えておけばいい事があるかもしれないくらいの事。色々しなくていい苦労をしたけど、Lion由来のエラーは少ないはずです。
色々やるのが面倒な人は、MacPortsで、
sudo ports install nss
で/opt からライブラリをかっさらって持ってきた方が話は早いはずです。
やっと、使えそうなサンプルコードが見つかったので、これからgmailにつなげる修行に入ります。ここからが長そうだ。ミニマムコードさえ得てしまえば、後はmailpeeper-tls本体に組み込んで不都合を直すだけですから、ちょっと腰を据えてやってみることにします。
しかし、今度はOpenSSLほど一般的に知られてないライブラリなので、苦労はするだろうなぁ。まぁ、手順を追っていくのはどっちもSSLなので同じだろうし、Thunderbird等で機能的に出来るのが分かっているので、あんまり不安には思っていないです。
タグ:freesoft
コメント 0