55#include "sigchain.h"
66
77static char * configured_signing_key ;
8+ static const char * gpg_program = "gpg" ;
89
910void set_signing_key (const char * key )
1011{
@@ -15,9 +16,12 @@ void set_signing_key(const char *key)
1516int git_gpg_config (const char * var , const char * value , void * cb )
1617{
1718 if (!strcmp (var , "user.signingkey" )) {
19+ set_signing_key (value );
20+ }
21+ if (!strcmp (var , "gpg.program" )) {
1822 if (!value )
1923 return config_error_nonbool (var );
20- set_signing_key (value );
24+ gpg_program = xstrdup (value );
2125 }
2226 return 0 ;
2327}
@@ -46,7 +50,7 @@ int sign_buffer(struct strbuf *buffer, struct strbuf *signature, const char *sig
4650 gpg .argv = args ;
4751 gpg .in = -1 ;
4852 gpg .out = -1 ;
49- args [0 ] = "gpg" ;
53+ args [0 ] = gpg_program ;
5054 args [1 ] = "-bsau" ;
5155 args [2 ] = signing_key ;
5256 args [3 ] = NULL ;
@@ -101,10 +105,11 @@ int verify_signed_buffer(const char *payload, size_t payload_size,
101105 struct strbuf * gpg_output )
102106{
103107 struct child_process gpg ;
104- const char * args_gpg [] = {"gpg" , "--verify" , "FILE" , "-" , NULL };
108+ const char * args_gpg [] = {NULL , "--verify" , "FILE" , "-" , NULL };
105109 char path [PATH_MAX ];
106110 int fd , ret ;
107111
112+ args_gpg [0 ] = gpg_program ;
108113 fd = git_mkstemp (path , PATH_MAX , ".git_vtag_tmpXXXXXX" );
109114 if (fd < 0 )
110115 return error ("could not create temporary file '%s': %s" ,
0 commit comments