Mailinglist Archive: opensuse (1523 mails)

< Previous Next >
Re: [opensuse] Pinentry problem
  • From: Anton Aylward <anton.aylward@xxxxxxxxxx>
  • Date: Wed, 17 Mar 2010 13:35:59 -0400
  • Message-id: <4BA112FF.3030502@xxxxxxxxxx>
Petr Uzel said the following on 03/17/2010 11:01 AM:


Running 'sh -x /usr/bin/pinentry' from the tty it detects that there is
a running KDE eslwhere and tries to execute /usr/bin/pinentry-qt4

That chain of if/elseif is a but confusing and unclear.

True, but do you know any other way how gpg-agent could determine
which pinentry to run?

If -tq is installed then it will be use REGARDLESS of whether
KDE is running or not. As a result -curses can never be selected.

Graphical pinentry's have precedence over pinentry-curses. If DISPLAY
is not set, then pinentry-{qt,gtk-2} runs pinentry-curses instead.
If you don't like this behavior, you can modify gpg-agent.conf
as mentioned above.

That is not the case.
From tty2 I ran 'sh - /usr/bin/pinentry'
I recorded it with 'script'
Sadly, "who am i" doens't seem to work within script, so you'll have to
take my word that this was on tty2

The result is:

Script started on Wed 17 Mar 2010 11:49:22 AM EDT
anton@BigBoy:~/tmp>
anton@BigBoy:~/tmp> unset DISPLAY
anton@BigBoy:~/tmp> sh -x /usr/bin/pinentry
+ kde_running=
+ '[' -n '' ']'
+ '[' -n '' ']'
+ arg=
+ display=
+ '[' -n '' ']'
+ '[' -n '' -a x = 4x -a -f /usr/bin/pinentry-qt4 ']'
+ '[' -n '' -a -f /usr/bin/pinentry-qt ']'
+ '[' -f /usr/bin/pinentry-gtk-2 ']'
+ export PINENTRY_BINARY=/usr/bin/pinentry-gtk-2
+ PINENTRY_BINARY=/usr/bin/pinentry-gtk-2
+ exec /usr/bin/pinentry-gtk-2
OK Your orders please
^C
anton@BigBoy:~/tmp> exit

Script done on Wed 17 Mar 2010 11:50:02 AM EDT


That's what I eamn about the if/elseif chain being wrong.
That code segment reads


# otherwise test if pinentry-gtk-2 is installed
elif [ -f /usr/bin/pinentry-gtk-2 ]
then
export PINENTRY_BINARY="/usr/bin/pinentry-gtk-2"
# otherwise test if pinentry-qt4 exists although KDE is not detected
elif [ -f /usr/bin/pinentry-qt4 ]
then
export PINENTRY_BINARY="/usr/bin/pinentry-qt4"
# otherwise test if pinentry-qt exists although KDE is not detected
elif [ -f /usr/bin/pinentry-qt ]
then
export PINENTRY_BINARY="/usr/bin/pinentry-qt"
# pinentry-curses is installed by default
else
export PINENTRY_BINARY="/usr/bin/pinentry-curses"
fi



So if -gtk-2 or -qt4 or -qt exist they well be used
EVEN IF KDE IS NOT DETECTED.

I think this is WRONG !



The test for KDE only happens if DISPLAY is set.
So what about other window managers?





--
"The man who does not read good books has no advantage over the man who
can't read them."
--Mark Twain
--
To unsubscribe, e-mail: opensuse+unsubscribe@xxxxxxxxxxxx
For additional commands, e-mail: opensuse+help@xxxxxxxxxxxx

< Previous Next >