On Wed, Dec 14, 2016 at 7:56 AM, Mart Raudsepp <[email protected]> wrote: > Ühel kenal päeval, K, 14.12.2016 kell 15:35, kirjutas Andrew Savchenko: >> On Wed, 14 Dec 2016 11:16:58 +0200 Mart Raudsepp wrote: >> > >> > Ühel kenal päeval, K, 14.12.2016 kell 13:08, kirjutas Sam Jorna: >> > > >> > > On Mon, Dec 12, 2016 at 02:35:28PM +1100, Sam Jorna wrote: >> > > > >> > > > >> > > > On Mon, Dec 12, 2016 at 09:34:21AM +0700, [email protected] >> > > > wrote: >> > > > > >> > > > > >> > > > > On Sun, 11 Dec 2016, Kristian Fiskerstrand wrote: >> > > > > > >> > > > > > >> > > > > > On 12/11/2016 03:13 PM, [email protected] wrote: >> > > > > > > >> > > > > > > >> > > > > > > gpg: signing failed: Inappropriate ioctl for device >> > > > > > this might indicate a want for export GPG_TTY=$(tty) >> > > > > I don't understand what has really happened. I removed my >> > > > > last >> > > > > commit, an >> > > > > attempt to commit it again failed with gpg: signing failed. >> > > > > Then >> > > > > I logged >> > > > > out of the box on which I have the git tree (I log in this >> > > > > box >> > > > > via ssh), >> > > > > and logged in again. After that the commit succeeded. >> > > > >> > > > I was also getting some odd issues with commit signing, though >> > > > it >> > > > seemed >> > > > to settle for me when I switched to pinentry-curses (since I >> > > > use >> > > > awesome), so I figured it was probably a local issue. Perhaps >> > > > there's a >> > > > wider problem here? >> > > >> > > If anyone else is getting this, it seems to be resolved by >> > > exporting >> > > GPG_TTY=$(tty) either immediately before attempting to sign or in >> > > your >> > > shell ~/.*rc file. >> > >> > I'd consider this a temporary workaround. The real issue would just >> > be >> > workarounded with this, which is nice to get something committed, >> > but >> > not so nice longterm. >> > I had similar issues, but it turned out some pinentry issues for me >> > iirc, so properly fixed by now and not needing such hackery >> > anymore. >> >> This is not a workaround, but officially recommended practice, from >> man gpg-agent: >> >> You should always add the following lines to your .bashrc or >> whatever initialization file is used for all shell invocations: >> >> GPG_TTY=$(tty) >> export GPG_TTY > > Then the packages or eselect pinentry or whatever should be taking care > of it, not have users have to mess with .bashrc to have stuff work.
This is not practical. Adding it to the global /etc/bashrc is a bad idea. It would slow down every shell startup (fork/exec), even for users who do not actively use gpg (like root). Also, there is no way to know what shell each gpg user will be using.
