You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Given a library crate contains a symlink as a source file, i.e. something.rs -> ../other/something.rs, when another crate depends on the library via a { git = ".." } dependency, then on Windows, the cloned dependency fails to build.
An example error message:
error[E0583]: file not found for module `log_disabled`
--> D:\apps\gitlab_runner\.cargo\git\checkouts\rust-derive-builder-ac2766f218331415\67c9c95\derive_builder\src\lib.rs:576:5
|
576 | mod log_disabled;
| ^^^^^^^^^^^^
|
= help: name the file either log_disabled.rs or log_disabled\mod.rs inside the directory "D:\apps\gitlab_runner\.cargo\git\checkouts\rust-derive-builder-ac2766f218331415\67c9c95\derive_builder\src"
Steps
(On Windows!), create a crate with the following dependency:
That's really strange! It looks like the issue is that libgit2 is creating symlinks with forward slashes, and those cannot be read. I have opened an upstream issue at libgit2/libgit2#5252.
Problem
Given a library crate contains a symlink as a source file, i.e.
something.rs -> ../other/something.rs
, when another crate depends on the library via a{ git = ".." }
dependency, then on Windows, the cloned dependency fails to build.An example error message:
Steps
(On Windows!), create a crate with the following dependency:
cargo build
Possible Solution(s)
Not sure, but whatever
cargo publish
does, the consuming crate is able to build -- on the same commit,derive_builder = "0.8.0"
builds successfully.Notes
Output of
cargo version
:cargo 1.37.0-nightly (4c1fa54d1 2019-06-24)
OS: Windows 10 x64
Git:
git version 2.23.0.windows.1
git config core.symlinks
:true
cc: colin-kiegel/rust-derive-builder#149
The text was updated successfully, but these errors were encountered: