Page MenuHome GnuPG

make check error on gnupg-2.2.15 and gpgme-1.13.0
Closed, ResolvedPublic

Description

Hi,

I think these problems were caused by the system configuration and other software, not gnupg itself.

Ubuntu 18.04 LTS
Thunderbird 60.6.1
Enigmail 2.0.11

Was installing latest version and ran into errors when doing 'make check'
Turns out my installation of Ubuntu didn't have the package gnutls-bin installed. I don't know why. I installed it and it fixed the error, but it wasn't an obvious fix based on the error messages.


make check errors

GnuPG v2.2.15 has been configured as follows:

        Revision:  dc93e5722  (56467)
        Platform:  GNU/Linux (x86_64-pc-linux-gnu)

        OpenPGP:   yes
        S/MIME:    yes
        Agent:     yes
        Smartcard: yes (without internal CCID driver)
        G13:       no
        Dirmngr:   yes
        Gpgtar:    yes
        WKS tools: yes

        Protect tool:      (default)
        LDAP wrapper:      (default)
        Default agent:     (default)
        Default pinentry:  (default)
        Default scdaemon:  (default)
        Default dirmngr:   (default)

        Dirmngr auto start:  yes
        Readline support:    yes
        LDAP support:        no
        TLS support:         ntbtls
        TOFU support:        no
        Tor support:         yes


make  check-TESTS
make[2]: Entering directory '/home/en/Downloads/gpg/gnupg-2.2.15/dirmngr'
./t-http-basic: error while loading shared libraries: libntbtls.so.0: cannot open shared object file: No such file or directory
FAIL: t-http-basic

1 of 1 test failed
Please report to https://bugs.gnupg.org

Makefile:1344: recipe for target 'check-TESTS' failed
make[2]: *** [check-TESTS] Error 1
make[2]: Leaving directory '/home/en/Downloads/gpg/gnupg-2.2.15/dirmngr'
Makefile:1467: recipe for target 'check-am' failed
make[1]: *** [check-am] Error 2
make[1]: Leaving directory '/home/en/Downloads/gpg/gnupg-2.2.15/dirmngr'
Makefile:615: recipe for target 'check-recursive' failed
make: *** [check-recursive] Error 1

        GPGME v1.13.0 has been configured as follows:

        Revision:          1b5a6bf2  (7002)
        Platform:          x86_64-pc-linux-gnu

        UI Server:         yes
        FD Passing:        yes

        Language bindings: cl cpp 





PASS: initial.test
./t-json: relocation error: ./t-json: symbol gpgrt_strdup version GPG_ERROR_1.0 not defined in file libgpg-error.so.0 with link time reference
FAIL: t-json
stopping gpg-agent 
PASS: final.test

1 of 3 tests failed
Please report to https://bugs.gnupg.org

Makefile:609: recipe for target 'check-TESTS' failed
make[4]: *** [check-TESTS] Error 1
make[4]: Leaving directory '/home/en/Downloads/gpg/gpgme-1.13.0/tests/json'
Makefile:732: recipe for target 'check-am' failed
make[3]: *** [check-am] Error 2
make[3]: Leaving directory '/home/en/Downloads/gpg/gpgme-1.13.0/tests/json'
Makefile:734: recipe for target 'check' failed
make[2]: *** [check] Error 2
make[2]: Leaving directory '/home/en/Downloads/gpg/gpgme-1.13.0/tests/json'
Makefile:720: recipe for target 'check-recursive' failed
make[1]: *** [check-recursive] Error 1
make[1]: Leaving directory '/home/en/Downloads/gpg/gpgme-1.13.0/tests'
Makefile:534: recipe for target 'check-recursive' failed
make: *** [check-recursive] Error 1

Details

Version
gnupg 2.2.15, gpgme 1.13.0

Event Timeline

gniibe triaged this task as Normal priority.
gniibe added a project: Not A Bug.
gniibe added a subscriber: gniibe.

For GnuPG, the error is: you don't have run-able libntbtls.so in your environment (because of your wrong configuration, perhaps) but you have it to link.
For GPGME, the error is: your linked libgpg-error.so.0 and the one which runs are different (because of your wrong configuration, perhaps).

I think that your procedure to build GnuPG and its friends are not perfect. When you install a library (like libntblts.so or libgpg-error.so), you also need to configure your system so that such a new library can be used at run time.

You can use LD_LIBRARY_PATH. please see: http://man7.org/linux/man-pages/man8/ld.so.8.html

For Ubuntu, also see:
https://help.ubuntu.com/community/EnvironmentVariables#line-205

Thank you for your response.

I understand the GPGME error better now and the links you provided are helpful.

I think it is possible that the Pretty Easy Privacy (pEp), part of the Enigmail plugin, linked it's own copy of libgpg-error library. I found that file name here:

/home/en/.thunderbird/artb8lrv.default/pepmda/lib/libgpg-error.so.0

pEp also created a new key for one of my email addresses. I don't think I asked it to.
I will need to read more about static and dynamic library linking.

FYI, pEp annoyance was addressed and handled here: https://bugs.debian.org/891882
By this patch: https://sources.debian.org/src/enigmail/2:2.0.11+ds1-1/debian/patches/0002-Avoid-auto-download-of-pEpEngine-Closes-891882.patch/

So, using enigmail in your distribution is better, I suppose.