Skip to content

Cargo build with dependencies fails on Cygwin referring to git-core/templates #1295

Open
@CMCDragonkai

Description

After trying cargo build --verbose on a project in Cygwin with a single dependency, this is the output:

 ± cargo build --verbose
    Updating registry `https://github.com/rust-lang/crates.io-index`
Unable to update registry https://github.com/rust-lang/crates.io-index

Caused by:
  [2] Could not find '/cygdrive/c/cygwin64/usr/share/git-core/templates/' to stat: The system cannot find the path specified.

/cygdrive/c/cygwin64/usr/share/git-core/templates/ does exist, since I went there and saw stuff in it.

Perhaps this has something to do with cygwin pathing issues? The Cargo is a windows 64 bit build. Which I suspect means that Cargo is taking the cygwin PATH of /cygdrive/c/cygwin64/usr/share/git-core/templates/ and trying to access it, which would not be possible through a windows executable. My git is not a windows based git, is supplied from Cygwin's git. which git returns /usr/bin/git.

It can be fixed by utilising something like cygpath in order to convert unix style paths into windows style paths:

 ± cygpath -w `git config --get init.templatedir`
C:\cygwin64\usr\share\git-core\templates

But of course you don't want to use cygpath executable. Perhaps in the Windows version of Cargo you can detect whether the path looks like a cygwin style PATH, and convert it directly. All Cygwin paths always start with /cygdrive/.

Cargo version: cargo 0.0.1-pre-nightly (9404539 2015-02-09 20:54:26 +0000)

Metadata

Assignees

No one assigned

    Labels

    A-gitArea: anything dealing with gitO-windowsOS: WindowsS-needs-infoStatus: Needs more info, such as a reproduction or more background for a feature request.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions