gpgme-1.23.1 fails the t-quick-key-manipulation.py test if gnupg is built without tofu support, as follows:
GNUPGHOME=/var/tmp/portage/app-crypt/gpgme-1.23.1/work/gpgme-1.23.1_build/lang/python/tests LC_ALL=C GPG_AGENT_INFO= top_srcdir=/var/tmp/portage/app-crypt/gpgme-1.23.1/work/b srcdir=/var/tmp/portage/app-crypt /gpgme-1.23.1/work/b/lang/python/tests LD_LIBRARY_PATH="../../../src/.libs:" python3.10 /var/tmp/portage/app-crypt/gpgme-1.23.1/work/b/lang/python/tests/run-tests.py \ --interpreters="python3.10" --srcdir=/var/tmp/portage/app-crypt/gpgme-1.23.1/work/b/lang/python/tests --python-libdir=/var/tmp/portage/app-crypt/gpgme-1.23.1/work/gpgme-1.23.1_build-python3_10/lib \ initial.py t-wrapper.py t-callbacks.py t-data.py t-encrypt.py t-encrypt-sym.py t-encrypt-sign.py t-sign.py t-signers.py t-decrypt.py t-verify.py t-decrypt-verify.py t-sig-notation.py t-export.py t-import.py t-edit.py t-keylist.py t-keylist-from-data.py t-wait.py t-encrypt-large.py t-file-name.py t-idiomatic.py t-protocol-assuan.py t-quick-key-creation.py t-quick-subkey-creation.py t-quick-key-manipulation.py t- quick-key-signing.py final.py starting gpg-agent.. gpg-connect-agent: no running gpg-agent - starting '/usr/bin/gpg-agent|--debug-quick-random' gpg-connect-agent: waiting for the agent to come up ... (5s) gpg-connect-agent: connection to agent established OK Using gpg module from '/var/tmp/portage/app-crypt/gpgme-1.23.1/work/gpgme-1.23.1_build-python3_10/lib/gpg'. Traceback (most recent call last): File "/var/tmp/portage/app-crypt/gpgme-1.23.1/work/b/lang/python/tests/t-quick-key-manipulation.py", line 102, in <module> if not support.have_tofu_support(ctx, bravo): File "/var/tmp/portage/app-crypt/gpgme-1.23.1/work/gpgme-1.23.1/lang/python/tests/support.py", line 49, in have_tofu_support keys = list( File "/var/tmp/portage/app-crypt/gpgme-1.23.1/work/gpgme-1.23.1_build-python3_10/lib/gpg/core.py", line 768, in keylist key = self.op_keylist_next() File "/var/tmp/portage/app-crypt/gpgme-1.23.1/work/gpgme-1.23.1_build-python3_10/lib/gpg/core.py", line 1214, in op_keylist_next raise excp File "/var/tmp/portage/app-crypt/gpgme-1.23.1/work/gpgme-1.23.1_build-python3_10/lib/gpg/core.py", line 1209, in op_keylist_next errorcheck(gpgme.gpgme_op_keylist_next(self.wrapped, ptr)) File "/var/tmp/portage/app-crypt/gpgme-1.23.1/work/gpgme-1.23.1_build-python3_10/lib/gpg/errors.py", line 129, in errorcheck raise GPGMEError(retval, extradata) gpg.errors.GPGMEError: GPGME: Invalid crypto engine stopping gpg-agent Running tests using python3.10 (3.10)... [...] FAIL: t-quick-key-manipulation.py PASS: t-quick-key-signing.py PASS: final.py 28 tests run, 27 succeeded, 1 failed, 0 skipped. make: *** [Makefile:628: xcheck] Error 1
What's interesting is:
- This came up before at https://lists.gnupg.org/pipermail/gnupg-devel/2017-April/032801.html
- The error here is actually within the have_tofu_support check which can't cope with the GPGMEError being raised
I assume some validation just got stricter between 1.22.0 and 1.23.1 and the fact that have_tofu_support requests gpg.constants.keylist.mode.WITH_TOFU triggers an exception now.