2011年11月10日

GnuTLSのコンパイル&インストール

GnuTLSをインストールする前に、Libgpg-errorとLibgcryptをインストールします。

1. Libgpg-errorのインストール
GnuPG
http://www.gnupg.org/
左のメニューのDownloadから、ダウンロードページに行きます。
http://www.gnupg.org/download/index.en.html
より、
Libgpg-error
Libgpg-error is a small library with error codes and descriptions shared by most GnuPG related software.
・Libgpg-error source code.
と書いてある所の、右端にあるFTPのリンクをクリックして、
libgpg-error-1.10.tar.bz2
を、適当なディレクトリに保存します。

MSYSで、ファイルを保存したディレクトリに移動し、
$ tar xjf libgpg-error-1.10.tar.bz2
$ cd libgpg-error-1.10
$ ./configure --prefix=/mingw --enable-static --disable-shared --disable-nls
$ make
$ make install

gettextがインストールされてない場合、make installの最後に、
potomo: './po/cs.po' keeping UTF-8
./potomo: line 56: msgfmt: command not found
というエラーが出ますが、必要なライブラリはインストールされますので、気にしなくて良いと思います。


2. Libgcryptのインストール
Libgpg-errorと同様に、
http://www.gnupg.org/download/index.en.html
より、
Libgcrypt
Libgcrypt is GNU's basic cryptographic library.
・Libgcrypt source code.
と書いてある所の、右端にあるFTPのリンクをクリックして、
libgcrypt-1.5.0.tar.bz2
を、適当なディレクトリに保存します。

MSYSで、ファイルを保存したディレクトリに移動し、
$ tar xjf libgcrypt-1.5.0.tar.bz2
$ cd libgcrypt-1.5.0
$ ./configure --prefix=/mingw --enable-static --disable-shared
$ make
$ make install


3. GnuTLSのインストール
The GNU Transport Layer Security Library
http://gnutls.org/
赤いバーのメニューのDownloadから、ダウンロードページに行きます。
http://gnutls.org/download.html

GnuTLS libraryのprimary FTP serverから、v2.12ディレクトリを開きます。
ftp://ftp.gnutls.org/gcrypt/gnutls/v2.12/
ここから、
gnutls-2.12.22.tar.bz2
を、適当なディレクトリに保存します。

MSYSで、ファイルを保存したディレクトリに移動し、
$ tar xjf gnutls-2.12.22.tar.bz2
$ cd gnutls-2.12.22
$ ./configure --prefix=/mingw --enable-threads=win32 --disable-shared --disable-cxx --disable-openssl-compatibility --with-libgcrypt --without-p11-kit
$ make
$ make install

念のため、make checkして、エラーが出なければOKです。

以上で終了です。


【補足】
Libgpg-errorのインストールで、gettext関連をインストールしてmsgfmtを使えるようにしてみたのですが、

potomo: './po/nl.po' keeping UTF-8
potomo: './po/pl.po' converting from ISO-8859-2 to utf-8
と、表示されたところで止まってしまいました。
その場合でも、ライブラリはインストールされているので、Ctrl+Cで強制的に終了してください。

2011/12/27 追記
Libgpg-errorのインストールで止まるのは、potomoスクリプトが原因でした。(まどきわさん情報)

msgfmtは、MSYSのgettextのパッケージに入っています。
以下のファイルを、MSYSのディレクトリに解凍します。
http://sourceforge.net/projects/mingw/files/MSYS/Base/gettext/gettext-0.18.1.1-1/
libgettextpo-0.18.1.1-1-msys-1.0.17-dll-0.tar.lzma
libintl-0.18.1.1-1-msys-1.0.17-dll-8.tar.lzma
gettext-0.18.1.1-1-msys-1.0.17-dev.tar.lzma
gettext-0.18.1.1-1-msys-1.0.17-bin.tar.lzma

potmoスクリプトを、以下のように修正します。
$ sed -i.orig -e "s/iconv --silent/iconv/" potomo

これで、インストール時のエラーが無くなります。


GnuTLSは、gnutls-3.0.xとgnutls-2.12.xがあります。
gnutls-3.0.xは、Windows2000だと、
getaddrinfo
getnameinfo
freeaddrinfo
の関数3つがundefined referenceになってしまうので、あきらめました。
Windows XP以降なら、コンパイルできるかもしれません。(未確認)
gnutls-2.12.xは、自前でその関数を実装しているので、Windows2000でもコンパイルできます。

その他、LibgcryptかNettleのどちらかをインストールすれば良いのですが、gnutls-2.12.xとnettle-2.4の組み合わせで、今度は「S_IFSOCK」が未定義でエラーになってしまいます。

ということで、最終的に、gnutls-2.12.xと、Libgpg-errorとLibgcryptの組み合わせになりました。

2012/01/25 追記
nettle-2.5-preとgnutls-3.0.12の組み合わせで、MinGWでも動作するようになりました。
記事を追加しましたので、こちらをご覧ください。
GnuTLSのコンパイル&インストール (gnutls-3.0.12以降)


【更新履歴】を見る
posted by あべちん at 21:01 | Comment(2) | TrackBack(0) | FFmpeg追加ライブラリ
この記事へのコメント
いつもお世話になってます。
sed -i.orig -e "s/iconv --silent/iconv/" potomo
でlibgpg-errorのinstall時のだんまりはなくなりましたが、問題解決したのでしょうか?
Posted by まどきわ at 2011年12月23日 09:44
まどきわさん、こんにちは。管理人です。

情報ありがとうございます。
配布しているffmpegのバイナリにGnuTLSは入れていなかったので、放置していました。

教えていただいた方法で、止まらずにインストールできました。
後で記事に追記しておきます。

ありがとうございました。
Posted by あべちん at 2011年12月24日 03:01
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。
この記事へのトラックバックURL
http://blog.sakura.ne.jp/tb/50204502
※言及リンクのないトラックバックは受信されません。

この記事へのトラックバック