Skip to content

GitLab

  • Menu
Projects Groups Snippets
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
    • Switch to GitLab Next
  • Sign in / Register
  • OpenTAP OpenTAP
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
    • Locked Files
  • Issues 132
    • Issues 132
    • List
    • Boards
    • Service Desk
    • Milestones
    • Iterations
    • Requirements
  • Merge requests 54
    • Merge requests 54
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
    • Test Cases
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Packages & Registries
    • Packages & Registries
    • Package Registry
    • Container Registry
    • Infrastructure Registry
  • Monitor
    • Monitor
    • Incidents
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Code review
    • Insights
    • Issue
    • Repository
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar

GitLab 15.0 has launched! Please visit Breaking changes in 15.0 and 15.0 Removals to see which breaking changes may impact your workflow.

  • OpenTAP
  • OpenTAPOpenTAP
  • Issues
  • #770
Closed
Open
Created Oct 07, 2021 by Giulio Galante@ggalanteDeveloper

`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.

Edited Oct 07, 2021 by Giulio Galante
Assignee
Assign to
Time tracking