Page MenuHome GnuPG

fdpassing fails during make check
Closed, InvalidPublic

Description

Similar to unresolved Issue 2318. Adding mine to escalate - how does it affect
installation of GnuPGP? System is Linux 3.2.0-23-generic.

Details

Version
2.4.2

Related Objects

Event Timeline

ann set Version to 2.4.2.
ann set Due Date to Apr 18 2016, 2:00 AM.
ann added a subscriber: ann.

ann renamed this task from fdpassing fails during to fdpassing fails during make check.Apr 17 2016, 9:39 AM
ann removed Due Date.
justus lowered the priority of this task from High to Normal.Apr 18 2016, 12:35 PM
justus added a subscriber: justus.

I don't think the bugs are necessarily related. Your issue looks like you build
your own libgpg-error and linked fdpassing against that, but your runtime linker
uses your system-supplied libgpg-error. Try running 'ldd tests/fdpassing' to
see which libgpg-error is used at run-time. Feel free to ask if you need more
assistance.

Thank you. I've attached the output from 'ldd tests/fdpassing'. Not sure how to
read it.

Thanks for the output. That indeed confirms my suspicion. Let's read it together:

[...]
libassuan.so.0 =>
/home/ann/gnupg-2.1.11/libassuan-2.4.2/src/.libs/libassuan.so.0 (0x002e4000)
libgpg-error.so.0 => /lib/i386-linux-gnu/libgpg-error.so.0 (0x0066d000)

ldd says which library is used to satisfy a dependency at load time. You see
here that for libassuan.so.0 your newly built library is used. That is good.
However, for libgpg-error.so.0 the library from your system is used which does
not have gpgrt_asprintf, hence the error message in your first log.

What you need to do is to make sure the runtime linker finds your gpg-error
library. Since this kind of problem will occur for each library, it is best to
install all the libraries you built to a common prefix, say /home/ann/local or
/usr/local by specifying --prefix=/my/prefix at configure time, and then to set
LD_LIBRARY_PATH to /my/prefix/lib and include /my/prefix/bin in PATH, so that
gpg-error-config and libassuan-config and co are found at compile time. Feel
free to ask questions if you get stuck.

(If you don't want to do all this by hand, and merely want a working modern
GnuPG, you can also use the 'speedo' framework. See the README in the GnuPG
repository for some hints.)