gvt icon indicating copy to clipboard operation
gvt copied to clipboard

Fetching a recursive dependency fails when the repo contains a license directory

Open ryboe opened this issue 9 years ago • 3 comments

$ gvt fetch github.com/apcera/libretto
...
fetches a bunch of recursive dependencies...
...
2016/04/22 13:57:17 fetching recursive dependency github.com/apcera/libretto/Godeps/_workspace/src/github.com/vmware/govmomi
2016/04/22 13:57:17 command "fetch" failed: copyfile: create("$GOPATH/src/foo/vendor/github.com/apcera/libretto/Godeps/_workspace/src/github.com/vmware/govmomi/LICENSE"): open /$GOPATH/src/foo/vendor/github.com/apcera/libretto/Godeps/_workspace/src/github.com/vmware/govmomi/LICENSE: is a directory

It fails because the vmware/govmomi repo contains a directory called license. gvt is confusing this with a LICENSE file and trying to fetch it.

Interestingly, I can't reproduce this when I run gvt fetch github.com/vmware/govmomi by itself. The problem only seems to occur when fetching vmware/govmomi as a recursive dependency of another repo.

UPDATE: This may only occur on case-insensitive file systems, where license == LICENSE (sigh... OS X).

ryboe avatar Apr 22 '16 21:04 ryboe

This issue does not occur on case-sensitive file systems.

ryboe avatar Apr 22 '16 22:04 ryboe

There's still a bug somewhere in here, it should work regardless, or gracefully generate a warning at most, please reopen and I'll look at it next week.

Thanks for the report!

FiloSottile avatar Apr 23 '16 12:04 FiloSottile

Hi,

This is still an issue on Macs that have not been formatted to case-sensitive HFS. A test case that triggers this (on macOS Sierra (10.12.6) on a filesystem formatted as Mac OS Extended (Journaled, Encrypted):

$ mkdir -p /tmp/go/src/foo
$ export GOPATH=/tmp/go
$ cd /tmp/go/src/foo
$ gvt fetch github.com/cloudfoundry/bosh-cli/release
2017/08/08 11:49:28 Fetching: github.com/cloudfoundry/bosh-cli/release
2017/08/08 11:49:39 command "fetch" failed: copyfile: create("/tmp/src/foo/vendor/github.com/cloudfoundry/bosh-cli/release/LICENSE"): open /tmp/src/foo/vendor/github.com/cloudfoundry/bosh-cli/release/LICENSE: is a directory

iandelahorne avatar Aug 08 '17 18:08 iandelahorne