Mew with GnuPG on Cygwin

As of Feb 7, 2003.

What's the problem?

Cygwin (あるいはMinGW)環境の GnuPG(PGP clone) は、 emacs の中のメールリーダー Mew から使おうとすると、passphrase の入力ができません。 これは、tty まわりが genuine UNIX 環境とは違うためです。

A solution

Mew と一緒に Cygwin/MinGW の GnuPG を使うには、 GnuPG のソースにパッチをあてて自分で make しましょう。

The method described in this page has been tested on the following environment:

ここで述べる方法は、上の環境に限らず幅広い状況で使えるものと思われます。 逆に、適用できない環境がありましたら、ぜひお知らせ下さい。 なお、GnuPG 1.2.1 については Other Solutions の節をご参照ください。

1. パッケージとパッチの準備

これで以下のようなファイルが揃っているはずである。

% cd /usr/src
% ls
gnupg-1.0.7-1.patch  gnupg-1.0.7.tar.gz
gnupg-1.0.7-1.sh     gnupg-passphrase-cygwin.patch

2. ソースの準備

% cd /usr/src
% tar -xzvf gnupg-1.0.7.tar.gz
% patch -p 0 < gnupg-1.0.7-1.patch
% patch -p 0 < gnupg-passphrase-cygwin.patch

gnupg-1.0.7-1.sh (の prep などの命令)は使わないこと。

3. Configuration Generation

% cd gnupg-1.0.7
% ./scripts/autogen.sh
% ./configure --prefix=/usr RANLIB=/usr/bin/ranlib

RANLIB の指定がないと、 ranlib の位置が正しく Makefile に反映されないことがあります。 --prefix の指定がないと /usr/local に install されてしまうはずですが、 その方が好みの人はそれでもかまわないでしょう。

4. Build

% make
% make check
% make install
% ls -l `which gpg`
% gpg --version

Emacs を立ち上げて Mew を動かして署名を試み、 Passphrase の入力ができることを確かめましょう。 Passphrase の入力以外の問題は、このページでは解決できません。

Other Solutions

GnuPG 1.2.1の場合

飯田健介さんの GnuPG 1.2.1 用 patch のページを参照してください。

Windows GPG Agentを使う

Windows GPG Agentを使えば、 これが passphrase を記憶して gpg に渡してくれるので、 Emacs での passphrase 入力で悩むことはなくなります。 この方法は、セキュリティをわずかに弱めることになる一方で、 GnuPGをコンパイルしなおす必要がないという魅力があります。 詳しくは、 mew-win32 mailing list の記事 [mew-win32 03732] を参照してください。

参考文献


渡邊克宏

katsu@watanabe.name