libgit2 / libgit2/libgit2sharp
dotnet/source-build: Unable to load shared library 'git2-8e0b172'
Personne n'a encore pris cette issue.
- Langage dominant
- C#
- Étoiles
- 3.5k
- Forks
- 925
- Métriques de merge des PR
- Aucune PR mergée en 30 j
Description
I am working on a Dotnet package for Exherbo Linux.
Following the error message below, I realized that there were several libraries libgit2-8e0b172.so
s0dy ~/source-build (release/3.0) find . -name libgit2-8e0b172.so
./packages/libgit2sharp.nativebinaries/1.0.235/runtimes/debian.9-x64/native/libgit2-8e0b172.so
./packages/libgit2sharp.nativebinaries/1.0.235/runtimes/fedora-x64/native/libgit2-8e0b172.so
./packages/libgit2sharp.nativebinaries/1.0.235/runtimes/alpine-x64/native/libgit2-8e0b172.so
./packages/libgit2sharp.nativebinaries/1.0.235/runtimes/linux-x64/native/libgit2-8e0b172.so
./packages/libgit2sharp.nativebinaries/1.0.235/runtimes/rhel-x64/native/libgit2-8e0b172.so
I also noticed that the lib for debian and fedora was related to openssl-1.1
s0dy ~/source-build (release/3.0) lddtree packages/libgit2sharp.nativebinaries/1.0.235/runtimes/debian.9-x64/native/libgit2-8e0b172.so
libgit2-8e0b172.so => packages/libgit2sharp.nativebinaries/1.0.235/runtimes/debian.9-x64/native/libgit2-8e0b172.so (interpreter => none)
librt.so.1 => /usr/host/lib/librt.so.1
libpthread.so.0 => /usr/host/lib/libpthread.so.0
ld-linux-x86-64.so.2 => /usr/host/lib/ld-linux-x86-64.so.2
libcurl.so.4 => /usr/host/lib/libcurl.so.4
libssh2.so.1 => /usr/x86_64-pc-linux-gnu/lib/libssh2.so.1
libssl.so.1.1 => /usr/host/lib/libssl.so.1.1
libcrypto.so.1.1 => /usr/host/lib/libcrypto.so.1.1
libdl.so.2 => /usr/host/lib/libdl.so.2
libz.so.1 => /usr/host/lib/libz.so.1
libc.so.6 => /usr/host/lib/libc.so.6
While the others (alpine, linux and rhel) are related to openssl-1.0
s0dy ~/source-build (release/3.0) lddtree packages/libgit2sharp.nativebinaries/1.0.235/runtimes/alpine-x64/native/libgit2-8e0b172.so
libgit2-8e0b172.so => packages/libgit2sharp.nativebinaries/1.0.235/runtimes/alpine-x64/native/libgit2-8e0b172.so (interpreter => none)
libcurl.so.4 => /usr/host/lib/libcurl.so.4
libssh2.so.1 => /usr/x86_64-pc-linux-gnu/lib/libssh2.so.1
libssl.so.1.1 => /usr/x86_64-pc-linux-gnu/lib/libssl.so.1.1
libcrypto.so.1.1 => /usr/x86_64-pc-linux-gnu/lib/libcrypto.so.1.1
libdl.so.2 => /usr/host/lib/libdl.so.2
ld-linux-x86-64.so.2 => /usr/host/lib/ld-linux-x86-64.so.2
libpthread.so.0 => /usr/x86_64-pc-linux-gnu/lib/libpthread.so.0
libc.so.6 => /usr/x86_64-pc-linux-gnu/lib/libc.so.6
libssl.so.1.0.0 => not found
libcrypto.so.1.0.0 => not found
libz.so.1 => /usr/host/lib/libz.so.1
libc.musl-x86_64.so.1 => not found
-
The version of my distribution is not recognized, I guess I use the linux-x64 version that is related to openssl-1.0. So I have libssl and libcrypto that are not found as you can see above.
-
I tried replacing my /etc/os-release file with that of a debian machine and it works.
-
I would like to find a solution, make a patch. Which file exactly checks the distribution? How to tell him to use the good library related to openssl-1.1?
Reproduction steps
- git clone https://github.com/dotnet/source-build.git
- cd source-build.git
- ./build.sh
Expected behavior
successful compilation ?
Actual behavior
fail: Microsoft.DotNet.Darc.Operations.Operation[0]
Something failed while cloning.
System.Exception: Something went wrong when cloning repo https://github.com/dotnet/arcade at <default branch> into /home/s0dy/source-build/bin/src/arcade ---> System.TypeInitializationException: The type initializer for 'LibGit2Sharp.Core.NativeMethods' threw an exception. ---> System.DllNotFoundException: Unable to load shared library 'git2-8e0b172' or one of its dependencies. In order to help diagnose loading problems, consider setting the LD_DEBUG environment variable: libgit2-8e0b172: cannot open shared object file: No such file or directory
at LibGit2Sharp.Core.NativeMethods.git_libgit2_init()
at LibGit2Sharp.Core.NativeMethods.LoadNativeLibrary() in C:\projects\libgit2sharp\LibGit2Sharp\Core\NativeMethods.cs:line 47
at LibGit2Sharp.Core.NativeMethods..cctor() in C:\projects\libgit2sharp\LibGit2Sharp\Core\NativeMethods.cs:line 37
--- End of inner exception stack trace ---
at LibGit2Sharp.Core.NativeMethods.git_clone(git_repository*& repo, String origin_url, FilePath workdir_path, GitCloneOptions& opts)
at LibGit2Sharp.Core.Proxy.git_clone(String url, String workdir, GitCloneOptions& opts) in C:\projects\libgit2sharp\LibGit2Sharp\Core\Proxy.cs:line 354
at LibGit2Sharp.Repository.Clone(String sourceUrl, String workdirPath, CloneOptions options) in C:\projects\libgit2sharp\LibGit2Sharp\Repository.cs:line 715
at Microsoft.DotNet.DarcLib.RemoteRepoBase.Clone(String repoUri, String commit, String targetDirectory, ILogger _logger, String pat, String gitDirectory) in /home/s0dy/source-build/tools-local/arcade-services/src/Microsoft.DotNet.Darc/src/DarcLib/RemoteRepoBase.cs:line 176
--- End of inner exception stack trace ---
at Microsoft.DotNet.DarcLib.RemoteRepoBase.Clone(String repoUri, String commit, String targetDirectory, ILogger _logger, String pat, String gitDirectory) in /home/s0dy/source-build/tools-local/arcade-services/src/Microsoft.DotNet.Darc/src/DarcLib/RemoteRepoBase.cs:line 210
at Microsoft.DotNet.DarcLib.GitHubClient.Clone(String repoUri, String commit, String targetDirectory, String gitDirectory) in /home/s0dy/source-build/tools-local/arcade-services/src/Microsoft.DotNet.Darc/src/DarcLib/GitHubClient.cs:line 875
at Microsoft.DotNet.Darc.Operations.CloneOperation.HandleMasterCopyAndCreateGitDir(RemoteFactory remoteFactory, String repoUrl, String masterGitRepoPath, String masterRepoGitDirPath, String gitDirRedirect, ILogger log) in /home/s0dy/source-build/tools-local/arcade-services/src/Microsoft.DotNet.Darc/src/Darc/Operations/CloneOperation.cs:line 282
at Microsoft.DotNet.Darc.Operations.CloneOperation.HandleMasterCopyWithGitDirPath(RemoteFactory remoteFactory, String repoUrl, String masterGitRepoPath, String masterRepoGitDirPath, ILogger log) in /home/s0dy/source-build/tools-local/arcade-services/src/Microsoft.DotNet.Darc/src/Darc/Operations/CloneOperation.cs:line 270
at Microsoft.DotNet.Darc.Operations.CloneOperation.HandleMasterCopy(RemoteFactory remoteFactory, String repoUrl, String masterGitRepoPath, String masterRepoGitDirPath, ILogger log) in /home/s0dy/source-build/tools-local/arcade-services/src/Microsoft.DotNet.Darc/src/Darc/Operations/CloneOperation.cs:line 225
at Microsoft.DotNet.Darc.Operations.CloneOperation.ExecuteAsync() in /home/s0dy/source-build/tools-local/arcade-services/src/Microsoft.DotNet.Darc/src/Darc/Operations/CloneOperation.cs:line 102
/home/s0dy/source-build/tools-local/init-build.proj(169,5): error MSB3073: The command "/home/s0dy/source-build/Tools/dotnetcli/dotnet /home/s0dy/source-build/tools-local/arcade-services/artifacts/bin/Microsoft.DotNet.Darc/Release/netcoreapp2.1/Microsoft.DotNet.Darc.dll clone --repos-folder /home/s0dy/source-build/bin/src/ --git-dir-folder /home/s0dy/source-build/.git/modules/src/ --include-toolset --ignore-repos ";https://dev.azure.com/dnceng/internal/_git/dotnet-optimization;https://dev.azure.com/devdiv/DevDiv/_git/DotNet-Trusted;https://devdiv.visualstudio.com/DevDiv/_git/DotNet-Trusted;https://dnceng@dev.azure.com/dnceng/internal/_git/dotnet-optimization;https://dev.azure.com/dnceng/internal/_git/dotnet-core-setup" --azdev-pat bogus --github-pat bogus --depth 0 --debug" exited with code 42.
Version of LibGit2Sharp (release number or SHA1)
Versions pulled from NuGet package
LibGit2Sharp.NativeBinaries - version="1.0.235"
Operating system(s) tested; .NET runtime tested
Exherbo Linux trying to compile dotnet/source-build release/3.0
Guide de contribution
Ouvrir le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Piste de recherche
Commencez par LibGit2Sharp/Core/NativeMethods.cs, en particulier le chemin LoadNativeLibrary() cité dans la stack trace, et examinez les assets natifs sous packages/libgit2sharp.nativebinaries/1.0.235/runtimes/. Reproduisez le problème avec ./build.sh sur Exherbo Linux et comparez la détection de la distribution à partir de /etc/os-release. Le travail est terminé lorsque la bibliothèque native libgit2 compatible avec OpenSSL appropriée se charge pendant l’opération de clonage du source-build.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- csharp, git, linux
- Domaine
- devtools, operating-systems
- Type d'issue
- Bug
- Difficulté
- 4/5
- Temps estimé
- 3-5 jours
- Activité
- À l'abandon
- Clarté
- Plutôt claire
- Accessibilité débutants
- 30/100