Skip to content

Package manager breaks if your current pwd contains a file or directory called "libgit2" #51293

Closed
@Keno

Description

@Keno
$ mkdir libgit2; julia -e 'using Pkg; Pkg.update()'
    Updating registry at `~/.julia/registries/General.toml`
ERROR: could not load library "libgit2"
libgit2: cannot open shared object file: No such file or directory
Stacktrace:
  [1] macro expansion
    @ ~/.julia/juliaup/julia-1.9.1+0.x64.linux.gnu/share/julia/stdlib/v1.9/LibGit2/src/error.jl:109 [inlined]
  [2] initialize()
    @ LibGit2 ~/.julia/juliaup/julia-1.9.1+0.x64.linux.gnu/share/julia/stdlib/v1.9/LibGit2/src/LibGit2.jl:986
  [3] (::LibGit2.var"#162#163")()
    @ LibGit2 ~/.julia/juliaup/julia-1.9.1+0.x64.linux.gnu/share/julia/stdlib/v1.9/LibGit2/src/LibGit2.jl:975
  [4] lock(f::LibGit2.var"#162#163", l::ReentrantLock)
    @ Base ./lock.jl:229
  [5] ensure_initialized
    @ ~/.julia/juliaup/julia-1.9.1+0.x64.linux.gnu/share/julia/stdlib/v1.9/LibGit2/src/LibGit2.jl:971 [inlined]

This is caused by a combination of:

  1. The LibGit2 stdlib uses plain libgit2 as the library name
  2. We stat the literal name passed in jl_dlopen and don't query the extensions if the file exists

Metadata

Metadata

Assignees

No one assigned

    Labels

    libgit2The libgit2 library or the LibGit2 stdlib module

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions