{"thread":{"id":"60942","subject":"Calling \"gpg --sign\" with loopback pinentry in some scenarios, but not always","startedAt":"2024-02-17T23:00:43Z","lastAt":"2024-02-17T23:31:09Z","messageCount":2,"participants":["Jens Schmidt","Junio C Hamano"],"isPatch":false,"patchVersion":null,"patchTotal":null},"messages":[{"id":"488852","messageId":"de38341b-f69f-4d3b-a4c2-4443e1ec1f6f@vodafonemail.de","threadId":"60942","inReplyTo":null,"subject":"Calling \"gpg --sign\" with loopback pinentry in some scenarios, but not always","fromName":"Jens Schmidt","fromEmail":"farblos@vodafonemail.de","sentAt":"2024-02-17T22:51:43Z","receivedAt":"2024-02-17T23:00:43Z","isPatch":false,"sender":{"key":"farblos@vodafonemail.de","avatar":null},"body":"Hi.\n\nI'd like to use gpg loopback pinentry mode when signing commits\nor tags through Emacs/Magit but default, non-loopback pinentry\nfor all other cases.\n\nIn particular, configuring \"pinentry-mode loopback\" in \"gpg.conf\"\nis not really an option for me.\n\nIt seems that \"git\" does not have any hooks to pass arbitrary\nadditional parameters to \"gpg\", right?  So my only reasonable\noption would be a Emacs/Magit-specific \"gpg\"-wrapper that adds\ncommand line parameter \"--pinentry-mode loopback\" to the wrapped\n\"gpg\" executable.\n\nAny other options?\n\nThanks!\n"},{"id":"488853","messageId":"xmqqle7ifz2i.fsf@gitster.g","threadId":"60942","inReplyTo":"de38341b-f69f-4d3b-a4c2-4443e1ec1f6f@vodafonemail.de","subject":"Re: Calling \"gpg --sign\" with loopback pinentry in some scenarios, but not always","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2024-02-17T23:31:01Z","receivedAt":"2024-02-17T23:31:09Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Jens Schmidt <farblos@vodafonemail.de> writes:\n\n> It seems that \"git\" does not have any hooks to pass arbitrary\n> additional parameters to \"gpg\", right?  So my only reasonable\n> option would be a Emacs/Magit-specific \"gpg\"-wrapper that adds\n> command line parameter \"--pinentry-mode loopback\" to the wrapped\n> \"gpg\" executable.\n\nCorrect.  You can point your gpg.program configuration variable at\nyour wrapper, perhaps\n\n    $ cat >\"$HOME/bin/mygpg-with-pinentry\" <<\\EOF\n    #!/bin/sh\n    exec gpg --pinentry-mode loopback \"$@\"\n    EOF\n    $ chmod +x \"$HOME/bin/mygpg-with-pinentry\"\n    $ git config gpg.openpgp.program \"$HOME/bin/mygpg-with-pinentry\"\n\nor something like that.  It is unfortunate that\n\n    $ git config gpg.openpgp.program \"gpg --pinentry-mode loopback\"\n\ndoes not work.\n"}]}