commit: 418ec12aa4ce223f7688c215040b6c8544798b63 Author: David Seifert <soap <AT> gentoo <DOT> org> AuthorDate: Fri Mar 20 15:29:00 2020 +0000 Commit: David Seifert <soap <AT> gentoo <DOT> org> CommitDate: Fri Mar 20 15:29:00 2020 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=418ec12a
app-crypt/gnupg: Enable SSH_AUTH_SOCK in systemctl --user mode Package-Manager: Portage-2.3.94, Repoman-2.3.21 Acked-by: Kristian Fiskerstrand <k_f <AT> gentoo.org> Signed-off-by: David Seifert <soap <AT> gentoo.org> app-crypt/gnupg/gnupg-2.2.19.ebuild | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/app-crypt/gnupg/gnupg-2.2.19.ebuild b/app-crypt/gnupg/gnupg-2.2.19.ebuild index 0a1d2df46af..e756ff966ad 100644 --- a/app-crypt/gnupg/gnupg-2.2.19.ebuild +++ b/app-crypt/gnupg/gnupg-2.2.19.ebuild @@ -53,6 +53,19 @@ PATCHES=( "${FILESDIR}/${PN}-2.1.20-gpgscm-Use-shorter-socket-path-lengts-to-improve-tes.patch" ) +src_prepare() { + default + + # Inject SSH_AUTH_SOCK into user's sessions after enabling gpg-agent-ssh.socket in systemctl --user mode, + # idea borrowed from libdbus, see + # https://gitlab.freedesktop.org/dbus/dbus/-/blob/master/bus/systemd-user/dbus.socket.in#L6 + # + # This cannot be upstreamed, as it requires determining the exact prefix of 'systemctl', + # which in turn requires discovery in Autoconf, something that upstream deeply resents. + sed -e "/DirectoryMode=/a ExecStartPost=-${EPREFIX}/bin/systemctl --user set-environment SSH_AUTH_SOCK=%t/gnupg/S.gpg-agent.ssh" \ + -i doc/examples/systemd-user/gpg-agent-ssh.socket || die +} + src_configure() { local myconf=()