зеркало из https://github.com/microsoft/git.git
Merge branch 'fs/gpgsm-update'
Newer version of GPGSM changed its output in a backward incompatible way to break our code that parses its output. It also added more processes our tests need to kill when cleaning up. Adjustments have been made to accommodate these changes. * fs/gpgsm-update: t/lib-gpg: kill all gpg components, not just gpg-agent t/lib-gpg: reload gpg components after updating trustlist gpg-interface/gpgsm: fix for v2.3
This commit is contained in:
Коммит
21b839e606
|
@ -934,6 +934,7 @@ static int sign_buffer_gpg(struct strbuf *buffer, struct strbuf *signature,
|
|||
struct child_process gpg = CHILD_PROCESS_INIT;
|
||||
int ret;
|
||||
size_t bottom;
|
||||
const char *cp;
|
||||
struct strbuf gpg_status = STRBUF_INIT;
|
||||
|
||||
strvec_pushl(&gpg.args,
|
||||
|
@ -953,7 +954,13 @@ static int sign_buffer_gpg(struct strbuf *buffer, struct strbuf *signature,
|
|||
signature, 1024, &gpg_status, 0);
|
||||
sigchain_pop(SIGPIPE);
|
||||
|
||||
ret |= !strstr(gpg_status.buf, "\n[GNUPG:] SIG_CREATED ");
|
||||
for (cp = gpg_status.buf;
|
||||
cp && (cp = strstr(cp, "[GNUPG:] SIG_CREATED "));
|
||||
cp++) {
|
||||
if (cp == gpg_status.buf || cp[-1] == '\n')
|
||||
break; /* found */
|
||||
}
|
||||
ret |= !cp;
|
||||
strbuf_release(&gpg_status);
|
||||
if (ret)
|
||||
return error(_("gpg failed to sign the data"));
|
||||
|
|
11
t/lib-gpg.sh
11
t/lib-gpg.sh
|
@ -40,7 +40,7 @@ test_lazy_prereq GPG '
|
|||
# > lib-gpg/ownertrust
|
||||
mkdir "$GNUPGHOME" &&
|
||||
chmod 0700 "$GNUPGHOME" &&
|
||||
(gpgconf --kill gpg-agent || : ) &&
|
||||
(gpgconf --kill all || : ) &&
|
||||
gpg --homedir "${GNUPGHOME}" --import \
|
||||
"$TEST_DIRECTORY"/lib-gpg/keyring.gpg &&
|
||||
gpg --homedir "${GNUPGHOME}" --import-ownertrust \
|
||||
|
@ -72,12 +72,11 @@ test_lazy_prereq GPGSM '
|
|||
--passphrase-fd 0 --pinentry-mode loopback \
|
||||
--import "$TEST_DIRECTORY"/lib-gpg/gpgsm_cert.p12 &&
|
||||
|
||||
gpgsm --homedir "${GNUPGHOME}" -K |
|
||||
grep fingerprint: |
|
||||
cut -d" " -f4 |
|
||||
tr -d "\\n" >"${GNUPGHOME}/trustlist.txt" &&
|
||||
gpgsm --homedir "${GNUPGHOME}" -K --with-colons |
|
||||
awk -F ":" "/^fpr:/ {printf \"%s S relax\\n\", \$10}" \
|
||||
>"${GNUPGHOME}/trustlist.txt" &&
|
||||
(gpgconf --reload all || : ) &&
|
||||
|
||||
echo " S relax" >>"${GNUPGHOME}/trustlist.txt" &&
|
||||
echo hello | gpgsm --homedir "${GNUPGHOME}" >/dev/null \
|
||||
-u committer@example.com -o /dev/null --sign -
|
||||
'
|
||||
|
|
|
@ -2037,7 +2037,8 @@ test_expect_success GPGSM 'log --graph --show-signature for merged tag x509 miss
|
|||
git merge --no-ff -m msg signed_tag_x509_nokey &&
|
||||
GNUPGHOME=. git log --graph --show-signature -n1 plain-x509-nokey >actual &&
|
||||
grep "^|\\\ merged tag" actual &&
|
||||
grep "^| | gpgsm: certificate not found" actual
|
||||
grep -e "^| | gpgsm: certificate not found" \
|
||||
-e "^| | gpgsm: failed to find the certificate: Not found" actual
|
||||
'
|
||||
|
||||
test_expect_success GPGSM 'log --graph --show-signature for merged tag x509 bad signature' '
|
||||
|
|
Загрузка…
Ссылка в новой задаче