When I switch to pinentry-curses, I cannot sign commits in git-based overlay: LANG=en repoman ci RepoMan scours the neighborhood... >>> Creating Manifest for /home/winterheart/gentoo/overlay/foo/bar Note: use --include-dev (-d) to check dependencies for 'dev' profiles * 1 files being committed... You need a passphrase to unlock the secret key for user: "Azamat H. Hackimov <azamat.hackimov@gmail.com>" 2048-bit DSA key, ID A018DE8C, created 2011-01-18 [there should be appear pinentry-curses window] gpg: problem with the agent: End of file gpg: skipped "0xA018DE8C": Operation cancelled gpg: signing failed: Operation cancelled error: gpg failed to sign the data fatal: failed to write commit object !!! Exiting on git (shell) error code: 128 When I switch back to pinentry-qt4 or pinentry-gtk2, window with passphrase request normally appears.
Created attachment 353854 [details] emerge-info.txt
It seems like you have a problem with your gpg, gpg-agent, or how you have them configured. We use python's subprocess.call() function to execute gpg, and it is the simplest possible way to do so. The subprocess inherits all three stdin, stdout, and stderr streams.
Fine for me, paste you configs without the comments
egrep -v "^(#|$)" ~/.gnupg/gpg.conf default-key A018DE8C require-cross-certification charset utf-8 keyserver hkp://keys.gnupg.net use-agent I use net-misc/keychain for gpg-agent.
I can reproduce the same, using plain gpg configuration: $ repoman commit -m "a1" RepoMan scours the neighborhood... >>> Creating Manifest for /usr/local/portage/ovirt-overlay/app-admin/x1 Note: use --include-dev (-d) to check dependencies for 'dev' profiles * 3 files being committed... You need a passphrase to unlock the secret key for user: "Alon Bar-Lev <alonbl@gentoo.org>" 2048-bit DSA key, ID BF20DC51, created 2013-02-13 gpg-agent[8791]: enabled debug flags: command mpi crypto memory cache memstat hashing assuan pinentry-curses: no LC_CTYPE known - assuming UTF-8 pinentry-curses: no LC_CTYPE known - assuming UTF-8 pinentry-curses: no LC_CTYPE known - assuming UTF-8 pinentry-curses: no LC_CTYPE known - assuming UTF-8 However it is not repoman fault but git fault... I get the same using: $ git commit -m "a1" --gpg-sign
The following does work: $ GPG_TTY=$(tty) repoman commit -m "a1"
This should fix it: http://git.overlays.gentoo.org/gitweb/?p=proj/portage.git;a=commit;h=af76565d011464a6da418478655848182099e117
This is fixed in 2.1.13.2 and 2.2.0_alpha191.