Re: [BUG] Veryfing signatures in git log fails when language is not english
From: Mariusz Gronczewski <hidden>
Date: 2016-06-15 22:56:09
2013/2/14 Michael J Gruber [off-list ref]:
XANi venit, vidit, dixit 14.02.2013 01:18:quoted
Hi, any functionality that depends on exact exit msg of program can potentially fail because of that ᛯ export |grep LANG declare -x LANG="pl_PL.UTF-8" ᛯ ~/src/os/git/git log --format="%G? %h" |head -2 0d19377 5b9d7f8 ᛯ unset LANG ᛯ ~/src/os/git/git log --format="%G? %h" |head -2 G 0d19377 G 5b9d7f8 tested against maint (d32805d) and master (5bf72ed) maybe git should set up some output-changing variables before calling external programs? I think setting LC_ALL=C should be enougth.There are really multiple problems here: 1. git calls gpg without setting LANG but expects output in LANG=C 2. git looks at the textual output from gpg to check the validity. 3. In fact, it does so only for %G and the display of signed merge commits, in all other cases it checks the return code only. gpg is not supposed to be used like that. Since the callers of verify_signed_buffer do that craziness there is some refactoring to be done. A false hotfix would be to set LANG=C when calling gpg from git, but that wouldn't solve the real problem. Besides, we do want LANG dependent output for the user. I'll have a closer look. BTW: Thanks for the clear report :) Michael
What is really missing is an ability to display used key ID without hammering git log output with regexps, it would be much easier to validate incoming commits if there was format option to just display key ID instead of signer name. %GS isn't really good solution for that because it will show only one of email addresses used in the key and script checking signatures would have to always pick "right" one. -- Mariusz Gronczewski (XANi) [off-list ref] GnuPG: 0xEA8ACE64