The tests call scdaemon from /usr/libexec/scdaemon and there is no way how to override it. Similarly for gpg-agent being run from /usr/bin/gpg-agent.
Description
Revisions and Commits
rG GnuPG | |||
rG0e1729bb9936 tests: Fix agent teardown in release builds. | |||
rGa8dd96826f84 g10: Suppress error for card availability check. | |||
rG386a7bbb245d tests: Configure the environments to use scdaemon from build tree. |
Related Objects
Event Timeline
Can you elaborate that?
Where is scdaemon called? (Sadly we do not have a test that explicitly exercises scdaemon...)
Where is gpg-agent from /usr/bin called?
I spent quite a bit of time making sure that the tests do use the artifacts from the built tree. Which version are you using btw?
It is recent regression in 2.1.21 - probably in 2.1.20 scdaemon was not run at all.
From https://kojipkgs.fedoraproject.org//packages/gnupg2/2.1.21/1.fc27/data/logs/x86_64/build.log it looks like the scdaemon is being run from the tests.scm which is called from multiple tests.
I just commited 386a7bbb245dd3ab7c4156a554adbe75d82bdf49, that should fix your troubles with the test suite in the short term.
I'm somewhat afraid that we might have broken gpg setups where scdaemon is not installed. Niibe, can you please look into that?
Err... it's my badness. rG97a2394ecafa: g10: For signing, prefer available card key when no -u option. introduced this bug. It checks if a key on card is available by agent_scd_serialno.
Call to start_agent with FOR_CARD=1 may cause an error if there is no scdaemon installed.
I need to fix skipping such errors.
BTW, in the test suite, gpgconf is invoked to kill gpg-agent/scdaemon/dirmngr. But it uses say, /usr/bin/gpg-connect-agent, which might be not yet installed.
I found such errors in Debian build: https://buildd.debian.org/status/fetch.php?pkg=gnupg2&arch=arm64&ver=2.1.21-1&stamp=1494993589&raw=0