dlenski / openconnect

OpenConnect client extended to support Palo Alto Networks' GlobalProtect VPN
679 stars 130 forks source link

`OPENCONNECT_5_5' not found (required by openconnect) #130

Closed lhanson closed 6 years ago

lhanson commented 6 years ago

I've built openconnect from source (the globalprotect branch) as the README instructs, including the prerequisites via apt-get and the sudo ldconfig step after installing. However, I receive an error upon running it:

$ openconnect --version
openconnect: /usr/lib/arm-linux-gnueabihf/libopenconnect.so.5: version `OPENCONNECT_5_5' not found (required by openconnect)

System info:

$ uname -a
Linux raspberrypi 4.14.71-v7+ #1145 SMP Fri Sep 21 15:38:35 BST 2018 armv7l GNU/Linux
lhanson commented 6 years ago

I was able to resolve this, I suspect the linker was using an incompatible existing version of libopenconnect.so.5 already installed by the Raspbian distribution.

While it was broken, ldd showed the following error which suggests that /usr/lib/arm-linux-gnueabihf/libopenconnect.so.5 is being used:

pi@raspberrypi:~ $ ldd /usr/local/sbin/openconnect
/usr/local/sbin/openconnect: /usr/lib/arm-linux-gnueabihf/libopenconnect.so.5: version `OPENCONNECT_5_5' not found (required by /usr/local/sbin/openconnect)
    linux-vdso.so.1 (0x7eed7000)
    /usr/lib/arm-linux-gnueabihf/libarmmem.so (0x76f01000)
    libopenconnect.so.5 => /usr/lib/arm-linux-gnueabihf/libopenconnect.so.5 (0x76ea6000)
    libgnutls.so.30 => /usr/lib/arm-linux-gnueabihf/libgnutls.so.30 (0x76d19000)
    libxml2.so.2 => /usr/lib/arm-linux-gnueabihf/libxml2.so.2 (0x76b89000)
    libproxy.so.1 => /usr/lib/arm-linux-gnueabihf/libproxy.so.1 (0x76b5f000)
    libc.so.6 => /lib/arm-linux-gnueabihf/libc.so.6 (0x76a20000)
    libz.so.1 => /lib/arm-linux-gnueabihf/libz.so.1 (0x769f9000)
    libp11-kit.so.0 => /usr/lib/arm-linux-gnueabihf/libp11-kit.so.0 (0x7699b000)
    libstoken.so.1 => /usr/lib/arm-linux-gnueabihf/libstoken.so.1 (0x76980000)
    libgssapi_krb5.so.2 => /usr/lib/arm-linux-gnueabihf/libgssapi_krb5.so.2 (0x76937000)
    libpcsclite.so.1 => /usr/lib/arm-linux-gnueabihf/libpcsclite.so.1 (0x7691e000)
    liblz4.so.1 => /usr/lib/arm-linux-gnueabihf/liblz4.so.1 (0x768fd000)
    libpthread.so.0 => /lib/arm-linux-gnueabihf/libpthread.so.0 (0x768d4000)
    /lib/ld-linux-armhf.so.3 (0x76f17000)
    libidn.so.11 => /lib/arm-linux-gnueabihf/libidn.so.11 (0x76893000)
    libtasn1.so.6 => /usr/lib/arm-linux-gnueabihf/libtasn1.so.6 (0x76873000)
    libnettle.so.6 => /usr/lib/arm-linux-gnueabihf/libnettle.so.6 (0x7682c000)
    libhogweed.so.4 => /usr/lib/arm-linux-gnueabihf/libhogweed.so.4 (0x767ef000)
    libgmp.so.10 => /usr/lib/arm-linux-gnueabihf/libgmp.so.10 (0x7677c000)
    libdl.so.2 => /lib/arm-linux-gnueabihf/libdl.so.2 (0x76769000)
    libicui18n.so.57 => /usr/lib/arm-linux-gnueabihf/libicui18n.so.57 (0x76559000)
    libicuuc.so.57 => /usr/lib/arm-linux-gnueabihf/libicuuc.so.57 (0x763ef000)
    libicudata.so.57 => /usr/lib/arm-linux-gnueabihf/libicudata.so.57 (0x74b62000)
    liblzma.so.5 => /lib/arm-linux-gnueabihf/liblzma.so.5 (0x74b31000)
    libm.so.6 => /lib/arm-linux-gnueabihf/libm.so.6 (0x74ab2000)
    libstdc++.so.6 => /usr/lib/arm-linux-gnueabihf/libstdc++.so.6 (0x7496a000)
    libgcc_s.so.1 => /lib/arm-linux-gnueabihf/libgcc_s.so.1 (0x7493d000)
    libffi.so.6 => /usr/lib/arm-linux-gnueabihf/libffi.so.6 (0x74925000)
    libtomcrypt.so.0 => /usr/lib/arm-linux-gnueabihf/libtomcrypt.so.0 (0x74871000)
    libkrb5.so.3 => /usr/lib/arm-linux-gnueabihf/libkrb5.so.3 (0x747ba000)
    libk5crypto.so.3 => /usr/lib/arm-linux-gnueabihf/libk5crypto.so.3 (0x7477b000)
    libcom_err.so.2 => /lib/arm-linux-gnueabihf/libcom_err.so.2 (0x74768000)
    libkrb5support.so.0 => /usr/lib/arm-linux-gnueabihf/libkrb5support.so.0 (0x7474f000)
    libkeyutils.so.1 => /lib/arm-linux-gnueabihf/libkeyutils.so.1 (0x7473c000)
    libresolv.so.2 => /lib/arm-linux-gnueabihf/libresolv.so.2 (0x74717000)
    librt.so.1 => /lib/arm-linux-gnueabihf/librt.so.1 (0x74700000)
    libtommath.so.1 => /usr/lib/arm-linux-gnueabihf/libtommath.so.1 (0x746dc000)

Then I noticed while I was installing an unrelated package that apt told me:

The following packages were automatically installed and are no longer required:
  libopenconnect5
Use 'sudo apt autoremove' to remove them.

So I did, and now with the broken version of libopenconnect5 no longer interfering, we find the source-installed version in /usr/local/lib now:

pi@raspberrypi:~/src/openconnect$ ldd $(which openconnect)
    linux-vdso.so.1 (0x7ed96000)
    /usr/lib/arm-linux-gnueabihf/libarmmem.so (0x76faf000)
    libopenconnect.so.5 => /usr/local/lib/libopenconnect.so.5 (0x76f54000)
    libgnutls.so.30 => /usr/lib/arm-linux-gnueabihf/libgnutls.so.30 (0x76dc7000)
    libxml2.so.2 => /usr/lib/arm-linux-gnueabihf/libxml2.so.2 (0x76c37000)
    libproxy.so.1 => /usr/lib/arm-linux-gnueabihf/libproxy.so.1 (0x76c0d000)
    libc.so.6 => /lib/arm-linux-gnueabihf/libc.so.6 (0x76ace000)
    libz.so.1 => /lib/arm-linux-gnueabihf/libz.so.1 (0x76aa7000)
    libp11-kit.so.0 => /usr/lib/arm-linux-gnueabihf/libp11-kit.so.0 (0x76a49000)
    libidn.so.11 => /lib/arm-linux-gnueabihf/libidn.so.11 (0x76a08000)
    libtasn1.so.6 => /usr/lib/arm-linux-gnueabihf/libtasn1.so.6 (0x769e8000)
    libnettle.so.6 => /usr/lib/arm-linux-gnueabihf/libnettle.so.6 (0x769a1000)
    libhogweed.so.4 => /usr/lib/arm-linux-gnueabihf/libhogweed.so.4 (0x76964000)
    libgmp.so.10 => /usr/lib/arm-linux-gnueabihf/libgmp.so.10 (0x768f1000)
    /lib/ld-linux-armhf.so.3 (0x76fc5000)
    libdl.so.2 => /lib/arm-linux-gnueabihf/libdl.so.2 (0x768de000)
    libicui18n.so.57 => /usr/lib/arm-linux-gnueabihf/libicui18n.so.57 (0x766ce000)
    libicuuc.so.57 => /usr/lib/arm-linux-gnueabihf/libicuuc.so.57 (0x76564000)
    libicudata.so.57 => /usr/lib/arm-linux-gnueabihf/libicudata.so.57 (0x74cd7000)
    liblzma.so.5 => /lib/arm-linux-gnueabihf/liblzma.so.5 (0x74ca6000)
    libm.so.6 => /lib/arm-linux-gnueabihf/libm.so.6 (0x74c27000)
    libpthread.so.0 => /lib/arm-linux-gnueabihf/libpthread.so.0 (0x74bfe000)
    libstdc++.so.6 => /usr/lib/arm-linux-gnueabihf/libstdc++.so.6 (0x74ab6000)
    libgcc_s.so.1 => /lib/arm-linux-gnueabihf/libgcc_s.so.1 (0x74a89000)
    libffi.so.6 => /usr/lib/arm-linux-gnueabihf/libffi.so.6 (0x74a71000)

Now I can run openconnect successfully:

pi@raspberrypi:~$ openconnect --version
OpenConnect version v7.08-334-g2d2da477
Using GnuTLS. Features present: PKCS#11, HOTP software token, TOTP software token, System keys, DTLS, ESP
Supported protocols: anyconnect (default), nc, gp