Page MenuHome GnuPG

keyboxd issue building gnupg-2.3.6 (almost identical toT5406)
Closed, ResolvedPublic

Description

When attempting to install gnupg-2.3.6 on Ubuntu 22.04 LTS (running under WSL 2, if it matters), the end of the output for make check looks like this:

("/home/dschulman/Downloads/gnupg-2.3.6/bin/gpg" --no-permission-warning --always-trust --yes --import "/home/dschulman/Downloads/gnupg-2.3.6/tests/openpgp/pubdemo.asc") failed: gpg: error running '/home/dschulman/Downloads/gnupg-2.3.6/libexec/keyboxd': probably not installed
gpg: failed to start keyboxd '/home/dschulman/Downloads/gnupg-2.3.6/libexec/keyboxd': Configuration error
gpg: can't connect to the keyboxd: Configuration error
gpg: error opening key DB: No Keybox daemon running
gpg: key 2D727CC768697734: public key not found: Input/output error
gpg: error reading '/home/dschulman/Downloads/gnupg-2.3.6/tests/openpgp/pubdemo.asc': Input/output error
gpg: import from '/home/dschulman/Downloads/gnupg-2.3.6/tests/openpgp/pubdemo.asc' failed: Input/output error
gpg: Total number processed: 0

FAIL: <use-keyboxd>tests/openpgp/setup.scm
Setup failed.
make: *** [Makefile:931: xcheck] Error 1
make[2]: Leaving directory '/home/dschulman/Downloads/gnupg-2.3.6/tests/openpgp'
make[1]: *** [Makefile:517: check-recursive] Error 1
make[1]: Leaving directory '/home/dschulman/Downloads/gnupg-2.3.6/tests'
make: *** [Makefile:629: check-recursive] Error 1

My tests/openpgp/defs.scm file looks exactly like the patch described in T5406, and the I/O error seems to be saying that the first demo key listed in tests/openpgp/pubdemo.asc (the one for Alpha Test <alpha@example.net>) couldn't be found.

I've added use-keyboxd into my ~/.gnupg/common.conf, and gnupg-2.3.6/kbx/kbxutil --stats ~/.gnupg/pubring.kbx appears to work as expected, for what it's worth. Any ideas how to get that daemon installed and running, or what else I'm missing here?

Details

Version
2.3.6

Event Timeline

Please do make at first before invoking make check. It creates symbolic links for executables.

Yes, of course I did that. The error output I included followed the sequence

configure --enable-all-tests
make
make check

gnupg-2.3.6/tests/openpgp/pubdemo.asc is trying to run gnupg-2.3.6/libexec/keyboxd, which is symlinked to gnupg-2.3.6/kbx/keyboxd. But the link's target doesn't exist, though I see the C source and header in that directory. Does make require some flag I don't know about in order to build that executable?

the link's target doesn't exist

Umm... I guess that you don't have SQLite3 and the build log says something like:

***
*** Building without SQLite support - TOFU and Keyboxd disabled
***

--enable-all-tests should handle this case, I'll fix about that.

Yes, I saw that in the logs and installed those packages. Now I have sqlite and sqlite3 in /usr/bin, but that doesn't seem to have changed anything.

You need to install a package like sqlite-devel or libsqlite3-dev, so that you can have development header files and library (sqlite3*.h and libsqite3.so) and pkgconfig file (pkgconfig/sqlite3.pc).

gniibe triaged this task as Normal priority.

Pushed the fix.

Thank you, @gniibe. That's what I was missing: installing libsqlite3-dev made the difference.

Trying to get it to work without that led to a whole tangle of dependencies on packages like m4, gmp, libnettle, and gnutls. Much less painful doing it the right way!