`tap sdk gitversion` fails on RHEL 8
$ ./tap sdk gitversion
A CliAction has thrown an exception: The type initializer for 'LibGit2Sharp.Core.NativeMethods' threw an exception.
This is due to the fact that the only
LibGit2Sharp.NativeBinaries
-provided rhel-x64
-runtime
libgit2-4aecb64.so
is dynamically linked:
$ ldd libgit2-4aecb64.so
linux-vdso.so.1 (0x00007ffe6e78e000)
librt.so.1 => /lib64/librt.so.1 (0x00007f85e637a000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f85e615a000)
libcurl.so.4 => /lib64/libcurl.so.4 (0x00007f85e5ecc000)
libssl.so.10 => not found
libcrypto.so.10 => not found
libz.so.1 => /lib64/libz.so.1 (0x00007f85e5cb5000)
libc.so.6 => /lib64/libc.so.6 (0x00007f85e58f0000)
/lib64/ld-linux-x86-64.so.2 (0x00007f85e6880000)
libnghttp2.so.14 => /lib64/libnghttp2.so.14 (0x00007f85e56c9000)
libidn2.so.0 => /lib64/libidn2.so.0 (0x00007f85e54ab000)
libssh.so.4 => /lib64/libssh.so.4 (0x00007f85e523c000)
libpsl.so.5 => /lib64/libpsl.so.5 (0x00007f85e502b000)
libssl.so.1.1 => /lib64/libssl.so.1.1 (0x00007f85e4d97000)
libcrypto.so.1.1 => /lib64/libcrypto.so.1.1 (0x00007f85e48b1000)
libgssapi_krb5.so.2 => /lib64/libgssapi_krb5.so.2 (0x00007f85e465c000)
libkrb5.so.3 => /lib64/libkrb5.so.3 (0x00007f85e4373000)
libk5crypto.so.3 => /lib64/libk5crypto.so.3 (0x00007f85e415c000)
libcom_err.so.2 => /lib64/libcom_err.so.2 (0x00007f85e3f58000)
libldap-2.4.so.2 => /lib64/libldap-2.4.so.2 (0x00007f85e3d0a000)
liblber-2.4.so.2 => /lib64/liblber-2.4.so.2 (0x00007f85e3afa000)
libbrotlidec.so.1 => /lib64/libbrotlidec.so.1 (0x00007f85e38ed000)
libunistring.so.2 => /lib64/libunistring.so.2 (0x00007f85e356c000)
libdl.so.2 => /lib64/libdl.so.2 (0x00007f85e3368000)
libkrb5support.so.0 => /lib64/libkrb5support.so.0 (0x00007f85e3157000)
libkeyutils.so.1 => /lib64/libkeyutils.so.1 (0x00007f85e2f53000)
libresolv.so.2 => /lib64/libresolv.so.2 (0x00007f85e2d3c000)
libsasl2.so.3 => /lib64/libsasl2.so.3 (0x00007f85e2b1e000)
libm.so.6 => /lib64/libm.so.6 (0x00007f85e279c000)
libbrotlicommon.so.1 => /lib64/libbrotlicommon.so.1 (0x00007f85e257b000)
libselinux.so.1 => /lib64/libselinux.so.1 (0x00007f85e2351000)
libcrypt.so.1 => /lib64/libcrypt.so.1 (0x00007f85e2128000)
libpcre2-8.so.0 => /lib64/libpcre2-8.so.0 (0x00007f85e1ea4000)
and depends on libssl.so.10
/libcrypto.so.10
, which are not installed
on RHEL 8.
The situation is similar for LibGit2Sharp
0.26.2
, which depends on
LibGit2Sharp.NativeBinaries
2.0.306
, still providing only one
dynamically-linked rhel-x64
-runtime:
$ objdump -p .nuget/packages/libgit2sharp.nativebinaries/2.0.306/runtimes/rhel-x64/native/libgit2-106a5f2.so | grep NEEDED
NEEDED librt.so.1
NEEDED libpthread.so.0
NEEDED libssl.so.10
NEEDED libcrypto.so.10
NEEDED libc.so.6
still depending onlibssl.so.10
/libcrypto.so.10
.
But it improves a lot for LibGit2Sharp
0.27.0-preview-0119
, which
depends on LibGit2Sharp.NativeBinaries
2.0.315-alpha.0.1
:
$ objdump -p .nuget/packages/libgit2sharp.nativebinaries/2.0.315-alpha.0.1/runtimes/linux-x64/native/libgit2-8a0dc67.so | grep NEEDED
NEEDED librt.so.1
NEEDED libpthread.so.0
NEEDED libc.so.6
needing only a few very basic dynamic libraries.