Bugzilla – Bug 704
libunbound is linked against libpython even this does not seem to be needed
Last modified: 2015-09-22 12:26:16 CEST
In Fedora we are moving to Python3 by default. However we are building Unbound with Python2 and Python3 at the same time.
We discovered that some binaries in Unbound are linked with libpython even this seems to be unnecessary. The problem is then these are bringing unneeded dependencies to the system when installed.
$ ldd /usr/sbin/unbound-anchor
libunbound.so.2 => /lib64/libunbound.so.2 (0x00007ff4d811a000)
libexpat.so.1 => /lib64/libexpat.so.1 (0x00007ff4d7ef0000)
libssl.so.10 => /lib64/libssl.so.10 (0x00007ff4d7c80000)
libevent-2.0.so.5 => /lib64/libevent-2.0.so.5 (0x00007ff4d7a38000)
libdl.so.2 => /lib64/libdl.so.2 (0x00007ff4d7834000)
--> libpython2.7.so.1.0 => /lib64/libpython2.7.so.1.0 (0x00007ff4d746a000)
libcrypto.so.10 => /lib64/libcrypto.so.10 (0x00007ff4d7082000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00007ff4d6e66000)
libc.so.6 => /lib64/libc.so.6 (0x00007ff4d6aa5000)
libgssapi_krb5.so.2 => /lib64/libgssapi_krb5.so.2 (0x00007ff4d6858000)
libkrb5.so.3 => /lib64/libkrb5.so.3 (0x00007ff4d6573000)
libcom_err.so.2 => /lib64/libcom_err.so.2 (0x00007ff4d636e000)
libk5crypto.so.3 => /lib64/libk5crypto.so.3 (0x00007ff4d613b000)
libz.so.1 => /lib64/libz.so.1 (0x00007ff4d5f25000)
libutil.so.1 => /lib64/libutil.so.1 (0x00007ff4d5d21000)
libm.so.6 => /lib64/libm.so.6 (0x00007ff4d5a19000)
libkrb5support.so.0 => /lib64/libkrb5support.so.0 (0x00007ff4d580a000)
libkeyutils.so.1 => /lib64/libkeyutils.so.1 (0x00007ff4d5605000)
libresolv.so.2 => /lib64/libresolv.so.2 (0x00007ff4d53ea000)
libselinux.so.1 => /lib64/libselinux.so.1 (0x00007ff4d51c5000)
libpcre.so.1 => /lib64/libpcre.so.1 (0x00007ff4d4f55000)
The problem seems that the Makefile's variable $LIBS includes -lpythonX.Y and is used everywhere.
It would be great to get rid of this unnecessary linking.
Fedora bug: https://bugzilla.redhat.com/show_bug.cgi?id=1254566
If you use --with-pythonmodule then unbound compiles the python module that can be used by people to extend unbound's processing of queries. That is then also compiled into libunbound (that can then also perform such python based query processing, just like the daemon).
Best regards, Wouter