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
When using the builtin cargo vendor in 1.37.0, if the path already exists the generated .cargo/config output has a path starting with \\?\, which confuses other tools.
I've seen a few terms used for this kind of path: extended-length paths, UNC paths, NT paths. I'm not sure which is accurate.
Steps
In a mingw shell, in a crate with some dependencies, mkdir vendor
Possible Solution(s)
With cargo-vendor 0.1.23 (exposed by downgrading to 1.36.0 with rustup default 1.36.0) this was not the case, it would output directory = "<basedir>\\vendor"
This is the case whether or not the directory existed already. With the subcommand in 1.37.0, the above issue happens if the directory already existed, but if it did not then it just says directory = "vendor". This is probably coming from the GetFinalPathNameByHandleW() call inside sys::fs::canonicalize(), but I haven't dug into cargo yet to see why this is being used.
Thanks for the report! I think this is essentially the same as #7316, so I'm going to close in favor of that (though I'm going to steal your title for the other issue).
Problem
When using the builtin
cargo vendor
in 1.37.0, if the path already exists the generated.cargo/config
output has a path starting with\\?\
, which confuses other tools.I've seen a few terms used for this kind of path: extended-length paths, UNC paths, NT paths. I'm not sure which is accurate.
Steps
mkdir vendor
cargo vendor
Possible Solution(s)
With cargo-vendor 0.1.23 (exposed by downgrading to 1.36.0 with
rustup default 1.36.0
) this was not the case, it would outputdirectory = "<basedir>\\vendor"
This is the case whether or not the directory existed already. With the subcommand in 1.37.0, the above issue happens if the directory already existed, but if it did not then it just says
directory = "vendor"
. This is probably coming from theGetFinalPathNameByHandleW()
call insidesys::fs::canonicalize()
, but I haven't dug into cargo yet to see why this is being used.I think something similar was caught and fixed early in cargo-vendor: alexcrichton/cargo-vendor#71 (comment)
Notes
Output of
cargo version
:cargo 1.37.0 (9edd089 2019-08-02)
The text was updated successfully, but these errors were encountered: