openconnect: symbol lookup error: /lib64/libopenconnect.so.5: undefined symbol: pcsc_stringify_error
[root] ldd /sbin/openconnect | grep pcsc
libpcsclite.so.1 => /opt/thinlinc/lib64/libpcsclite.so.1 (0x00007fb4826ad000)
[root@xps thinlinc] readelf -a /opt/thinlinc/lib64/libpcsclite.so.1 | grep pcsc_stringify_error
[root@xps thinlinc] readelf -a /lib64/libpcsclite.so.1 | grep pcsc_stringify_error
53: 0000000000003bb0 820 FUNC GLOBAL DEFAULT 13 pcsc_stringify_error
So, the ThinLinc version of libpcsclite.so.1 is missing the required symbol pcsc_stringify_error, which breaks openconnect-8.10-6.fc34.x86_64.
Thank you for reporting! This seems to have been an accidental change in 4.14.0. We'll have a look at getting that symbol back in the upcoming release.
The pcsc_stringify_error symbol has now been restored. I have verified that I could reproduce the error with openconnect in 4.14.0, and that things now work properly after the fix.
We should properly review the other things that were changed, along with what removed the pcsc_stringify_error symbol, before considering this resolved.
I have had a look at the patch now.
> * _A datatypes should no longer be used, see
> * Unfortunately, osx64 still uses pcsc-lite 1.4.0, which lacks
> LPSCARD_READERSTATE. But the LP/NP concept is obsolete anyway.
Looks good, we now use SCARD_READERSTATE* instead, which is equivalent:
> * g_rgSCard* constants needs to be "const"
Seems correct, I have verified that the constants are "const" with v1.7.3 of PCSC and later versions:
Tested using server versions official release 4.14.0 (pre-fix) and developers build #2774
(post-fix) on Ubuntu22.04 and RHEL8, and developers client build #2679 on Fedora36.
Managed to reproduce the openconnect problem in 4.14.0 mentioned by bug
reporter, which disappears when upgrading the server with the fix in place.
The pertinent issues are resolved, rendering this bug fixed -- closing.