[mew-dist 28397] Re: pinentry-program

早間 hayama at example.com
2008年 5月 9日 (金) 17:07:09 JST


早間です。

> 
> mew-pinentry 以外は保証外なので、mew-pinentry の問題を解決される方がい
> いでしょう。
> 
> mew-pinentry が PTY を取れない理由として考えられるのは:
> 
> 1) mew-connection-type2 を nil にしている (pipe が使われる)
> 2) gpgsm に --no-tty オプションをどこかで渡している
> 3) gpg-agent に --keep-tty オプションをどこかで渡している
> 
> です。
>

該当する情報を確認できませんでした。
 
> ちなみに、コマンドラインから gpgsm を起動し、mew-pinentry が起動された
> 状態で grep すると、mew-pinentry には PTY が割り当てられているのでしょ
> うか?
>

コマンドラインから実行した場合
  PID TTY   STAT TIME COMMAND
23350 pts/1 SL+  0:00 gpgsm --default-key example at example.com/jp --sign test.txt
23351 ?     S    0:00 /bin/sh /usr/bin/mew-pinentry --display :0.0

mew の時
  PID TTY STAT TIME COMMAND
 20768 ?    S  0:00 /bin/sh /usr/bin/mew-pinentry --display :0.0

コマンドラインから実行した場合は、コマンドを実行した term 上に 
Enter passphrase:
と表示され、パスフレーズを入力すると実行できるようです。

mew で実行した場合は
 キーボードから何を入力しても応じてくれない。
 emacs の終了も出来ない
フリーズしてしまいます。

$ emacs -nw 
で実行すると
s/mime サインを実行すると
・draft から summary に切り替わる。
・summary の最下行の次の行の行頭に
    Enter passphrase:
  と表示される。
・パスフレーズの入力は確認できないが、CR を押しても反応が無い。
・ C-g を押して強制終了させると draft に戻る

前も同じだったようです。

emacs --> mew --> C-s の時は

・ /usr/bin/mew-pinentry はシェルコマンドなのでアーギュメントにある
   --display :0.0 は使われていないと思われます。
  そのため親が使用できる pty 上に出ると思われます。

・ gpg-agent が
   eval `gpg-agent --daemon`
  と .xsession で実行しています。
  /usr/bin/mew-pinentry が gpg-agent から起動されると tty を持って
   いないと思います。 
  それで、/usr/bin/mew-pinentry は表示する tty が無いと
  考えています。

-- 早間 義博



Mew-dist メーリングリストの案内